【发布时间】:2016-01-16 22:37:52
【问题描述】:
在向表中插入新行时,我遇到了一些奇怪的 SQL 问题。我已将一些列设置为 NULL,就像我对数据库中的另一个表所做的那样。显然,当插入时没有数据通过时,它应该在记录中输入 NULL,但目前不是。
我已经检查了所有设置,并与我的其他表(正确地将记录插入为 NULL)进行比较,但找不到问题。两个表中的列如下所示。
`statement_1` varchar(255) DEFAULT NULL,
没有数据被粘贴(所以不是空格问题)。谁能建议为什么一张桌子按预期做而另一张桌子没有?
使用下面作为插入语句
$statement_a = "INSERT INTO statements (ucsid, statement_1, statement_2, statement_3, statement_4, statement_5, statement_6, statement_7, statement_8, statement_9, statement_10) VALUES (:ucsid, :statement_1, :statement_2, :statement_3, :statement_4, :statement_5, :statement_6, :statement_7, :statement_8, :statement_9, :statement_10)";
$q_a = $this->db_connection->prepare($statement_a);
$q_a->execute(array(':ucsid'=>$ucsid,
':statement_1'=>$statement_1,
':statement_2'=>$statement_2,
':statement_3'=>$statement_3,
':statement_4'=>$statement_4,
':statement_5'=>$statement_5,
':statement_6'=>$statement_6,
':statement_7'=>$statement_7,
':statement_8'=>$statement_8,
':statement_9'=>$statement_9,
':statement_10'=>$statement_10));
【问题讨论】:
-
您需要提供更多信息,我们才能为您提供帮助。错误信息是什么?您如何收到错误消息?您是从编程语言执行 SQL 语句还是直接进入数据库?正在执行哪个 SQL 语句?
-
插入什么而不是null?
-
@MarcoAurélioDeleu 没有错误消息,因为其余条目已成功插入,只是当记录为空时,未添加 NULL 值。我正在使用 PHP,但是这是通过 PHP 插入和通过 phpMyAdmin 接口插入发生的。
-
尝试相反:
SELECT * FROM my_table WHERE statement_1 IS NOT NULL -
很可能您在插入语句中的
$statement_1变量为空白(空,非空)并且您正在插入一个空字符。这意味着您的查询可以尝试WHERE trim(statement_1) = ''