我有一个这样的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/