Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 带null的PDO postgresql bindValue()->;SQLSTATE[22P02]_Php_Postgresql_Symfony_Pdo_Doctrine Orm - Fatal编程技术网

Php 带null的PDO postgresql bindValue()->;SQLSTATE[22P02]

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

我正在用PDO PostgreSQL和PHP(一些理论和SYMFONY-但我不使用ORM)把头撞在墙上

在某个时刻,我有一个null值,我想在bindParam()函数中使用它

它是这样的:

$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语句中工作。我找到了一个解决方法,我将作为答案发布。