Pregunta

Estoy usando SQLite 3 con PHP.

La tabla SQLite consta de 2 INTEGER y una columna FLOAT. Al guardar datos en esta tabla usando flotadores PHP no se guardan correctamente (valor por defecto se almacena en su lugar). Las dos columnas de tipo entero se guardan. ¿Alguna idea sobre que podría ir mal? Gracias.

código simplificado que realmente funciona correctamente:

$conn = new SQLite3('dbFileName');
$conn->query("CREATE TABLE data (
       id INTEGER NOT NULL DEFAULT 0 ,
       ts INTEGER NOT NULL DEFAULT 0 ,
       value FLOAT NOT NULL DEFAULT 0
    );"
);
$conn->query("REPLACE INTO data(id,ts,value) VALUES ('1','1234567890','12.1')");

-> 1 | 1234567890 | 0

No hay solución correcta

Otros consejos

Esto es sólo una sugerencia, ya que nunca he utilizado SQLite, pero ¿estás seguro debe citarse los números? Eso parece un poco extraño para mí.

Trate:

$conn->query("REPLACE INTO data(id,ts,value) VALUES (1, 1234567890, 12.1)");

tipos SQLite Data son sin tipo, por lo que las consultas tienen que trabajar:

todas las siguientes consultas funciona para mí

REPLACE INTO data(id,ts,value) VALUES ('1','1234567890','12.1');
REPLACE INTO data(id,ts,value) VALUES ('1','1234567890','12,123')
REPLACE INTO data(id,ts,value) VALUES ('1','1234567890','abc');

Comprobar la variable de PHP, usted podría tener un error y pasar una variable nula.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top