php - PDO绑定(bind)数据类型及比较

标签 php mysql

我在表中有一个整数列,当我进行比较时,以下代码似乎有效。

$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/

相关文章:

mysql - 内存中的 Laravel 5 测试

php - 捕获时的 Auth.net 问题

php - ftp_nlist 无法列出目录和文件

PHPExcelReader 无法写入数据库

php - 在php中使用mysqli_connect通过http认证

php - PDO 中带有 mysql_fetch_row 的 if 语句

mysql - Request.form 返回带逗号的值

php - 查找所有空 DOM 节点

php - PHP/MySQL使用哈希算法绑定(bind) 'salt'后无法登录

java - 在一个相对较大的应用程序中应该如何使用实体管理器来管理数据库事务?