Aquí es extraña:DÓNDE - ¿NULL no funciona en SQLite?
puedo filtrar en NOT NULLS
de SQLite, pero no NULLS
:
esto funciona:
SELECT * FROM project WHERE parent_id NOT NULL;
Estos no hacen:
SELECT * FROM project WHERE parent_id IS NULL;
SELECT * FROM project WHERE parent_id ISNULL;
SELECT * FROM project WHERE parent_id NULL;
Todos devuelven:
There is a problem with the syntax of your query (Query was not executed) ...
ACTUALIZACIÓN:
que estoy haciendo esto con PHP a través de mi código con ezSQl y el uso de la interfaz PHPLiteAdmin
Utilizando el PHPLiteAdmin demo, esta expresión funciona- así que ahora estoy sospechando un problema de versión con mi SQLite de PHP? ¿Podría ser eso? ¿No era esta expresión siempre válida?
ACTUALIZACIÓN 2:
Cuando ejecuto el código de PHP usando ezSQL, la advertencia es PHP:
PHP Warning: SQL logic error or missing database
¿Hay una manera de obtener más información de PHP? Esto es desesperante opaco y extraño, sobre todo debido a que la misma declaración en la CLI funciona bien ...
ACTUALIZACIÓN 3
La única otra posible pista que tengo es que las bases de datos que he creado con PHP no pueden estar leído por la CLI, y viceversa. Obtengo:
Error: file is encrypted or is not a database
Así que hay definitivamente dos sabores de SQlite embistiendo aquí. (See this) Aún así, ¿por qué la declaración inválida?
ACTUALIZACIÓN 4
bien creo que he rastreado el problema para el culpable, si no el razonable El DB he creado con PHP ezSQL es aquel en el que es la declaración NULL falla. Si creo el DB usando la clase SQLite3 de PHP, la declaración funciona bien, y además, puedo acceder al DB desde el CLI, mientras que el DB creado por ezSQL dio el error file is encrypted
.
Así que profundicé un poco en el código ezSQL- Aparece el Bat. Veo que usa métodos PDO, no la clase SQLite3 más nueva. Tal vez eso es algo, no voy a perder más tiempo en ello ...
En cualquier caso, he encontrado mi solución, que es alejarse de ezSQL, y simplemente usar la clase PHPs SQLite3.
Su primera 'ES sintaxis null' es correcta. En este caso, deberá darnos una idea de cómo está enviando ese comando a SQLite. Ese mensaje de error no parece venir de la interfaz de línea de comandos sqlite3. –
Larry-through PHP- usando phpliteadmin http://www.danedesigns.com/phpliteadmin.php y en mi código php con ezsql – Yarin
Supongo que PHPLiteAdmin está informando erróneamente algún otro problema.Podría ser un archivo de base de datos faltante o mal ubicado, o cualquier otra cosa. –