我有一个这样的SQL查询:

$stmt = $dbh->prepare("SELECT userID FROM User WHERE areaCode=? AND contactNo=?");
$stmt->bindValue(1, $areaCode ? $areaCode : null, PDO::PARAM_INT);
$stmt->bindValue(2, $contactNo, PDO::PARAM_INT);
$stmt->execute();


当$ areaCode为null时,此查询将失败,因为areaCode=null需要使用areaCode IS NULL进行测试。是否仍有可能参数化此类查询?

最佳答案

您可以通过<=>运算符执行此操作(即参数设置):

$stmt = $dbh->prepare("SELECT userID FROM User WHERE areaCode <=> ? AND contactNo=?");

关于php - 在PDO查询的where子句中使用可能的null值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18766698/

10-11 16:18