PHP / MySQL / PDO绑定null参数不起作用

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP / MySQL / PDO绑定null参数不起作用脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我在以下代码中绑定null参数时遇到问题
$nullVARiable = NULL;
$sql = new PDO('MysqL:host=' . $Server,$User,$Password);
$sql->setattribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$sql->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
$statement = $sql->prepare("SELECT * From Table WHERE Binary16Column = :uuid");
$statement->bindParam(":uuid",$nullVariable,PDO::PARAM_NULL);
$statement->execute();
$results = $statement->fetchAll(PDO::FETCH_ASSOC);

结果变量将是一个空数组.如果我不使用参数并将我的查询修改为“WHERE Binary16Column IS NULL”,则返回预期的行数.所以问题必须在于我如何处理参数,而不是我的SQL查询.

我的代码比上面列出的更复杂,我需要能够使用可能为null的参数变量,因此检查查看变量是否为null并且运行不同的查询不太理想.从技上讲,我有自己的设置参数的功能,这是我检查变量的内容是否为空,并适当地绑定参数,所以我不必编写不必要的查询数.如果变量包含有效数据,并且参数类型为PARAM_LOB,则查询工作也可以正常工作.

有谁知道我做错了什么?非常感谢!

阅读 three-valued logic. NULL不是一个值;它是缺少值的标记,因此NULL永远不会等于任何东西,包括它自己.

但是,有一个零安全比较运算符,也称为“太空船运算符”,它确实认为两个空值是等价的.

WHERE Binary16Column <=> :uuid

……应该按照你的预期行事.

脚本宝典总结

以上是脚本宝典为你收集整理的PHP / MySQL / PDO绑定null参数不起作用全部内容,希望文章能够帮你解决PHP / MySQL / PDO绑定null参数不起作用所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。