【发布时间】:2019-03-12 08:15:27
【问题描述】:
如https://www.sqlite.org/datatype3.html 中所述:
INTEGER:该值是有符号整数,存储在 1、2、3、4、6 或 8 中 字节数取决于值的大小。
问题是下面的语句给出了想要的结果,因为 bound 值相对较小(例如,$roll_no = 1111111111),但是,语句的执行当绑定值较大时(例如,$roll_no =3333333333)不获取任何结果,而 SQLite 表已经保存了具有该较大值的记录。
是因为参数值被截断还是其他原因?怎样才能摆脱它?
$stmt1 = $db->prepare("select sname,reg_no from student where roll_no=:roll_no");
$stmt1->bindParam(':roll_no', $roll_no, SQLITE3_INTEGER);
【问题讨论】:
-
你的
PHP_INT_MAX是什么? -
可能是 2147483647,因为我使用的是 32 位系统,是否可以将其更改为无符号,如果可以,更改会解决我的问题吗?
-
PHP 只支持有符号整数。所以,没有。
-
感谢您的回复。那么在不改变数据库中数据类型的情况下改成SQLITE3_TEXT好不好?