PDO检查字段对准备:param,处理IS NULL条件

Seb*_*bas 6 php mysql pdo prepared-statement

我有以下查询:

//query:
$query = "
    SELECT field1 FROM table 
    WHERE 
        field2 = :PARAM1
    AND ...
    AND fieldx = :PARAM1X";

//params:
$params = array();
$params [":PARAM" . $i] = NULL;

//prepare and execute:
$o = $cnx->prepare($query);
$o->execute($params);
Run Code Online (Sandbox Code Playgroud)

我如何用NULL值来绑定参数?PDO = :PARAM1IS NULL自动更改吗?为了说清楚,尝试计算WHERE field = null在mysql中不起作用,永远不会返回任何内容.我们必须WHERE field IS NULL改用.

那就是我现在正在处理的事情.

我必须说我的第一次测试是积极的,但我真的不想在生产环境中发现6个月的副作用......

Joh*_*Woo 1

正如评论所说PHP Docs

bindValue(':PARAM1', null, PDO::PARAM_INT);
Run Code Online (Sandbox Code Playgroud)

或者

$myNull = null;
$stmt->bindParam(':PARAM1', $myNull, PDO::PARAM_NULL);
Run Code Online (Sandbox Code Playgroud)