0

我有一个这样的 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。是否仍然可以对此类查询进行参数化?

4

1 回答 1

3

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

$stmt = $dbh->prepare("SELECT userID FROM User WHERE areaCode <=> ? AND contactNo=?");
于 2013-09-12T14:20:38.000 回答