SQLSTATE[HY093]:参数编号无效:未定义参数 - 在 SQL 中使用大于运算符


SQLSTATE[HY093]: Invalid parameter number: parameter was not defined - using greater than operator in SQL

这是一个奇怪的问题。请看下面的 php:

$time = 1234;
$query = $pdo->prepare('SELECT order_id, expiry FROM installs WHERE upd_code = ? AND expiry > ?');
$query->bindParam(1, $_POST['id'], PDO::PARAM_STR);
$query->bindParam(2, $time, PDO::PARAM_INT);
$query->execute();

产生错误:

SQLSTATE[HY093]:参数编号无效:未定义参数

仅当我出于某种原因使用大于运算符时,才会发生这种情况。 <或>

删除代码中的所有 try-catch 块,它们的唯一目的是回显$e->getMessage()

如果你已经以正确的方式拥有这个东西,那就完全没有问题了。因为PHP可以比普通PHP用户更好地处理异常,添加,例如,发生错误的确切文件名和行号 - 所以,它会让你立即意识到真正的原因,做出所有错误的假设和猜测没有用。