Galleggianti non vengono salvate correttamente nella tabella SQLite usando PHP
-
23-09-2019 - |
Domanda
Sto usando SQLite 3 con PHP.
La tabella SQLite comprende 2 INTEGER e una colonna FLOAT. Quando si salvano i dati in questa tabella utilizzando carri PHP non vengono salvate correttamente (il valore predefinito è memorizzato invece). Le due colonne interi vengono salvate. Qualche idea su cosa possa essere sbagliato? Grazie.
codice semplificato che in realtà funziona correttamente:
$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
Nessuna soluzione corretta
Altri suggerimenti
Questa è solo un suggerimento, visto che non ho mai usato SQLite, ma sei sicuro che i numeri dovrebbero essere citato? Che sembra un po 'strano per me.
Prova:
$conn->query("REPLACE INTO data(id,ts,value) VALUES (1, 1234567890, 12.1)");
tipi SQLite Data sono senza tipo, in modo che le domande devono lavorare:
tutte le query di funziona per me
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');
Controlla la tua variabile PHP, si potrebbe avere un bug e si passa una variabile nulla.