php - mysql 结果不同,具体取决于查询值是通过准备好的语句还是在 sql 字符串中
问题描述
我在PHP中遇到了一个问题,如果我通过准备好的语句使用整数作为参数,它就不起作用 - 但如果它只是粘贴到SQL字符串中,它就可以完美地工作。
例如,这将返回不正确的计数 (3):
$query = $pdo->prepare("SELECT count(*) FROM table WHERE x = :num");
$num = 1556555454;
$query->bindParam(":num", $num, PDO::PARAM_INT);
但这会以正确的行数(2)返回它:
$query = $pdo->prepare("SELECT count(*) FROM table WHERE x = 1556555454");
据我所知,它们的工作方式应该完全相同——但两个查询都返回不同的结果(具有讽刺意味的是,正确的方法是返回错误的答案)。