Closed NHZEX closed 1 month ago
@liu21st
看到测试结果普通 int 类型也变成字符串了
1) tests\orm\DbTest::testWhereIn
Failed asserting that two arrays are equal.
--- Expected
+++ Actual
@@ @@
Array (
- 0 => 'SELECT * FROM `test_user` WHERE `type` IN (1,3)'
- 1 => 'SELECT * FROM `test_user` WHERE `type` = 1'
- 2 => 'SELECT * FROM `test_user` WHERE `type` IN (1,0)'
+ 0 => 'SELECT * FROM `test_user` WHERE `type` IN ('1','3')'
+ 1 => 'SELECT * FROM `test_user` WHERE `type` = '1''
+ 2 => 'SELECT * FROM `test_user` WHERE `type` IN ('1','')'
3 => 'SELECT * FROM `test_user` WHERE 0 = 1'
- 4 => 'SELECT * FROM `test_user` WHERE `type` NOT IN (1,3)'
+ 4 => 'SELECT * FROM `test_user` WHERE `type` NOT IN ('1','3')'
5 => 'SELECT * FROM `test_user` WHERE 1 = 1'
)
当数据库中的值小于
PHP_INT_MAX
是整数,大于就会变成浮点、科学计数法、字符串,容易造成逻辑错误并且对强类型非常不友好。建议查询与读取都把类型默认设置为字符串。有人提过 PR #533 但好像是放弃了。
可能相关:#505