Php 带null的PDO postgresql bindValue()->;SQLSTATE[22P02]
我正在用PDO PostgreSQL和PHP(一些理论和SYMFONY-但我不使用ORM)把头撞在墙上 在某个时刻,我有一个null值,我想在bindParam()函数中使用它 它是这样的:Php 带null的PDO postgresql bindValue()->;SQLSTATE[22P02],php,postgresql,symfony,pdo,doctrine-orm,Php,Postgresql,Symfony,Pdo,Doctrine Orm,我正在用PDO PostgreSQL和PHP(一些理论和SYMFONY-但我不使用ORM)把头撞在墙上 在某个时刻,我有一个null值,我想在bindParam()函数中使用它 它是这样的: $sqlReadyToBindValue->bindValue(':an_integer_field',null,PDO::PARAM_INT); 我也尝试过: $sqlReadyToBindValue->bindValue(':an_integer_field',null,PDO::PARA
$sqlReadyToBindValue->bindValue(':an_integer_field',null,PDO::PARAM_INT);
我也尝试过:
$sqlReadyToBindValue->bindValue(':an_integer_field',null,PDO::PARAM_NULL);
在这两种情况下,都会引发异常:
SQLSTATE[22P02]:无效的文本表示法:7错误:在[SYMFONY文件夹]\vendor\doctor\dbal\lib\doctor\dbal\Driver\AbstractPostgreSQLDriver.php第91行,整数“”的输入语法无效
我不明白,因为我对bindValue()函数所做的任何其他事情都会通过
我注意到在阅读日志时,我的null值在经过原则时变成了两个简单的引号,类似于:
在DBALException::driverExceptionDuringQuery(对象(驱动程序)、对象(PDOException),“从一个_表中选择一个_整型_字段,其中一个_整型_字段=:一个_整型_字段'=>”)
在第17行的vendor\doctor\dbal\lib\doctor\dbal\Statement.php中
然后:
在AbstractPostgreSQLDriver->convertException('执行'时发生异常,从一个_integer_字段=:一个带参数[]的_integer_字段
'的_表中选择一个_integer_字段:':SQLSTATE[22P02]:无效文本表示法:7错误:整数的输入语法无效:“”,对象(PDOception))
在第116行的vendor\doctor\dbal\lib\doctor\dbal\DBALException.php中
然后它引发了第一个异常,我在前面写过:AbstractPostgreSQLDriver.php第91行(在屏幕上飞溅的那一行)
有什么线索吗?有没有办法确保null不会成为条令中的引号??我在SQL查询中使用了“Is null”检查,而不是将参数绑定到它。null不是整数,所以我认为这不起作用。SQL使用Is null运算符来检查null值。@Cerad,是的,它确实可以ke sense:)另外,由于字段是一个整数,它接受null值,这让我认为绑定null可以在WHERE语句中工作。我找到了一个解决方法,我将作为答案发布。