首页 > 解决方案 > 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");

据我所知,它们的工作方式应该完全相同——但两个查询都返回不同的结果(具有讽刺意味的是,正确的方法是返回错误的答案)。

标签: phpmysql

解决方案


推荐阅读