php - 在 PDO 查询的 where 子句中处理可能的空值

标签 php mysql pdo null conditional-statements

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

最佳答案

您可以通过 <=> 做到这一点(即参数化)运算符(operator):

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

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

相关文章:

php - 解码 json 响应并使用 for each 插入

MySQL : How to give a default value to a foreign key when I don't use it?

php - 使用文本区域修改 MySQL 表字段

php - 从单选按钮获取选定的值并将其插入到 MySQL

php - 按字段查询mysql数据库并返回所有出现的情况

php - PDO::bindValue() 在使用嵌套 SELECT 查询时失败

php - 如何处理 url 修改 php/mysql

php - 文件夹访问限制 Apache

php - 对我在用 PHP 运行的 Web 服务器中缓冲数据有什么建议吗?

MySQL - 在不同条件下计算两件事