【发布时间】: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。
【问题讨论】:
-
您是否匹配了值和类型 (
===)? -
column是mysql中的保留字-> dev.mysql.com/doc/refman/5.6/en/reserved-words.html -
@Darren 好电话.. 它不是 NULL 而是 '',所以我说如果 '' 设置为 NULL 并且它可以工作。谢谢。