Nette database a sqlite3 – Trying to access array offset on value of type null
- ondrej256
- Člen | 187
Ahoj,
importuju velké soubory a nejdřív si je uložím do sqlite a následně to zpracuju a importuju do mysql.
Při importu do sqlite3 dostávám následující chybu: Trying to access array offset on value of type null
viz screen: https://ctrlv.cz/ANB9
používám nette/database: v2.4.11
sqlite3 verze: 3.27.2
Vydumpoval jsem si před řádkem 229 $keys[$row[‚id‘]] a je tam tohle:
{
"name": 0,
"local": "key",
"table": "cache",
"foreign": null,
"onDelete": "CASCADE",
"onUpdate": "NO ACTION"
}
Nesetkali jste se s tím někdo? Kolegovi na OS X to funguje, kdežto mě na Linuxu to takhle padá.
Po úpravě mě import proběhl v pořádku dokonce
public function getForeignKeys($table)
{
$keys = [];
foreach ($this->connection->query("PRAGMA foreign_key_list({$this->delimite($table)})") as $row) {
$keys[$row['id']]['name'] = $row['id']; // foreign key name
$keys[$row['id']]['local'] = $row['from']; // local columns
$keys[$row['id']]['table'] = $row['table']; // referenced table
$keys[$row['id']]['foreign'] = $row['to']; // referenced columns
$keys[$row['id']]['onDelete'] = $row['on_delete'];
$keys[$row['id']]['onUpdate'] = $row['on_update'];
// if ($keys[$row['id']]['foreign'][0] == null) { TOHLE JE PUVODNI RADEK
if (!isset($keys[$row['id']]['foreign'][0]) || $keys[$row['id']]['foreign'][0] == null) {
$keys[$row['id']]['foreign'] = null;
}
}
return array_values($keys);
}
Vytvořil jsem pull request: https://github.com/…ase/pull/293
Editoval ondrej256 (28. 10. 2022 8:07)