【问题标题】:bindParam and NULL int valuesbindParam 和 NULL int 值
【发布时间】:2014-07-21 00:17:23
【问题描述】:

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

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

如果 POST 值为 '',它会一直插入 '0' 而不是 NULL。

【问题讨论】:

标签: php mysql


【解决方案1】:

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

这很可能意味着您的价值不是 null 像您想象的那样。

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

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

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


正如aldanux 在他的评论中提到的那样,你必须用反引号将列括起来,因为它是reserved word

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

【讨论】:

  • 是的,抱歉只是为了举例。
猜你喜欢
  • 2012-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-16
  • 2018-10-05
  • 2011-02-24
  • 1970-01-01
相关资源
最近更新 更多