Floats没有使用PHP正确保存到SQLite表中

时间:2010-01-27 11:21:19

标签: php sqlite floating-point

我正在使用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

2 个答案:

答案 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变量,你可能有一个错误,你传递一个空变量。