Ecco un tipo strano:DOVE: NULL non funziona in SQLite?
posso filtrare su NOT NULLS
da SQLite, ma non NULLS
:
questo funziona:
SELECT * FROM project WHERE parent_id NOT NULL;
Questi non fanno:
SELECT * FROM project WHERE parent_id IS NULL;
SELECT * FROM project WHERE parent_id ISNULL;
SELECT * FROM project WHERE parent_id NULL;
Tutti i resi:
There is a problem with the syntax of your query (Query was not executed) ...
UPDATE:
Sto facendo questo con PHP-attraverso il mio codice con ezSQl e utilizzando l'interfaccia di PHPLiteAdmin
Utilizzando la PHPLiteAdmin demo, questa espressione works- così ora sto sospettando un problema di versione con SQLite del mio PHP? Potrebbe essere? Questa espressione non era sempre valida?
UPDATE 2:
Quando eseguo il codice PHP utilizzando ezSQL, l'avviso PHP è:
PHP Warning: SQL logic error or missing database
C'è un modo per ottenere più informazioni da PHP? Questo è esasperatamente opaco e strano, soprattutto perché la stessa dichiarazione nella CLI funziona bene ...
UPDATE 3
L'unico altro possibile indizio che ho è che le basi di dati che creo con PHP non possono essere letto dalla CLI e viceversa. Ottengo:
Error: file is encrypted or is not a database
Quindi ci sono sicuramente due gusti SQlite butting teste qui. (See this) Ancora, perché la dichiarazione non valida ??
AGGIORNAMENTO 4
OK Credo di aver rintracciato il problema per il colpevole, se non il ragionevole Il DB che ho creato con PHP ezSQL è quello in cui la dichiarazione IS NULL non riesce. Se creo il DB utilizzando la classe SQLite3 di PHP, l'istruzione funziona correttamente e, inoltre, posso accedere al DB dalla CLI, mentre il DB creato da ezSQL ha dato l'errore file is encrypted
.
Così ho fatto un po 'di scavo nel codice ezSQL. Al di fuori del blocco vedo che usa i metodi PDO, non la più recente classe SQLite3. Forse è qualcosa - non sprecherò altro tempo su di esso ...
In ogni caso, ho trovato la mia soluzione, che è di stare lontano da ezSQL, e basta usare la classe SQLite3 di PHP.
Il tuo primo 'è la sintassi NULL' è corretta. In questo caso dovrai darci un'idea di come inviare questo comando a SQLite. Questo messaggio di errore non sembra provenire dall'interfaccia della riga di comando sqlite3. –
Larry- through PHP- utilizzando phpliteadmin http://www.danedesigns.com/phpliteadmin.php e nel mio codice php con ezsql – Yarin
La mia ipotesi è che PHPLiteAdmin stia segnalando erroneamente qualche altro problema.Potrebbe essere un file di database mancante o errato o qualsiasi altra cosa. –