我正在使用SQLite 3和PHP。
SQLite表由2个INTEGER和一个FLOAT列组成。使用PHP浮点数将数据保存到此表时未正确保存(而是存储默认值)。保存两个整数列。什么想法可能是错的?谢谢。
实际正常运行的简化代码:
$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
答案 0 :(得分:2)
这只是一个建议,因为我从未使用过SQLite,但您确定应该引用这些数字吗?这对我来说有点奇怪。
尝试:
$conn->query("REPLACE INTO data(id,ts,value) VALUES (1, 1234567890, 12.1)");
答案 1 :(得分:0)
Sqlite数据类型是无类型的,因此您的查询必须起作用:
所有以下查询都适合我
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');
检查你的PHP变量,你可能有一个错误,你传递一个空变量。