Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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 PDO整数可空值问题_Php_Mysql_Pdo_Php 5.6 - Fatal编程技术网

Php PDO整数可空值问题

Php PDO整数可空值问题,php,mysql,pdo,php-5.6,Php,Mysql,Pdo,Php 5.6,我有一个这样的代码块 $a=''; $Query =$db->prepare("UPDATE TblUsers SET Age = :age WHERE IsActive=1 ") $Query->bindParam(":age",$a,PDO::PARAM_INT); $Query->execute(); 当我运行这个代码时,我得到了这个错误 PHP致命错误:未捕获异常“PDOException”和消息 'SQLSTATE[HY000]:常规错误:1366的整数值不正确

我有一个这样的代码块

$a='';

$Query =$db->prepare("UPDATE TblUsers
SET Age = :age
WHERE
 IsActive=1 ")
$Query->bindParam(":age",$a,PDO::PARAM_INT);
$Query->execute();
当我运行这个代码时,我得到了这个错误

PHP致命错误:未捕获异常“PDOException”和消息 'SQLSTATE[HY000]:常规错误:1366的整数值不正确:“” 第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
时不引入值


请参阅:-

$a
发布架构和预期值。现在,它没有任何价值。或者,允许空/空值。如果希望
age
的值在某些时候为空,则必须将其设置为
NULL
,而不是
,错误非常明显。年龄字符串为空,查询需要一个值int@ZibianDomichi您需要在db表中设置列
默认值
null
,检查此项: