bindParam和NULL int值

时间:2014-07-21 00:17:23

标签: php mysql

我使用bindParam设置MySQL插入的值。有问题的列是INT(11)。它的默认值为NULL,允许为null。但是,使用bindParam它总是收到0.我已经确认我的$ _POST ['值']确实是空的。

if(isset($_POST['value'])){
  $stmt = $db->prepare("INSERT INTO table (column) VALUES (:column)");
  $stmt->bindParam(':column',$_POST['value'], PDO::PARAM_INT);
  $stmt->execute();
}

它不断插入' 0'如果POST值为'而不是NULL。

1 个答案:

答案 0 :(得分:2)

您应该将完整案例(答案并输入)与===Read More

相匹配

这很可能意味着您的价值 null就像您认为的那样。

确保通过检查( 下面的伪代码):

if(VALUE !=== NULL) {
   value = null
}

但是你明白了吗?如果不只是评论: - )


正如评论中提到的aldanux一样,你必须将列包装在反引号中,因为它是reserved word

INSERT INTO table (`column`) VALUES (:column)