PDO 整数可为空值问题

PDO integer nullable value issue

我有一个这样的代码块;

$a='';

$Query =$db->prepare("UPDATE TblUsers
SET Age = :age
WHERE
 IsActive=1 ")
$Query->bindParam(":age",$a,PDO::PARAM_INT);
$Query->execute();

当我 运行 这个代码时,我得到这个错误 ;

PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '' for column 'Age' at row 1'

但是当我添加 '' 时它将是可为 null 的变量。但我得到这个错误。我的失败在哪里?

您需要像下面这样使用 bindValue:-

$Query =$db->prepare("UPDATE TblUsers
SET Age = :age
WHERE
 IsActive=1 ")
$Query->bindValue(':age', $a, PDO::PARAM_INT);
$Query->execute();

bindParam 接受一个变量来引用,并且在调用 bindParam.

时不引入值

参考文献:-How do I insert NULL values using PDO?