我在表中有一个整数列,当我进行比较时,以下代码似乎有效。
$myLimit = 10;
$sth = $db->prepare("SELECT * FROM table WHERE number<:myLimit");
$sth->bindParam(':myLimit',$myLimit); // default datatype is PDO::PARAM_STR
$sth->execute();
$result = $sth->fetchAll();
我应该使用 PDO::PARAM_INT 作为 bindParam 的第三个参数吗? 另外,我不能对实数使用 PDO::PARAM_INT,因为它会将它们四舍五入。
最佳答案
PHP 中的数字处理是出了名的糟糕。要传递大数字,我的建议是将它们保留为字符串。
编辑 我刚刚测试了数字处理; PARAM_INT
适用于大型数字字符串,因此您不必使用 PARAM_INT
但精确无害:)
至于 float ,您应该使用 PARAM_STR
传递它们,这样会大大降低精度。
关于php - PDO绑定(bind)数据类型及比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6933680/