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
,检查此项: