2014-09-25 118 views
0

为什么我不能使用MySQL将NULL插入到varchar列中?MySQL将NULL插入到Varchar列中

PHP:

if ($startSemester == "") { 
    $startSemester = 'NULL'; 
} 

mysqli_query($gradschool_application_2_connect, "INSERT INTO Application (startSemester) VALUES ('".$startSemester."')"); 

该当前代码输入串NULL和不类型。如果我删除单引号,我的查询将不起作用。这其中的

+1

有没有在列NOT NULL约束? – 2014-09-25 20:13:13

+0

它必须是'VALUES(NULL)'而不是'VALUES('NULL')'。为此使用准备好的声明是一个好主意。 – VMai 2014-09-25 20:13:16

+0

也许你的数据库字段被设置为非空值? – Sebastien 2014-09-25 20:13:19

回答

1

半重复数据删除:MySQL Inserting NULL Value into INT Column

你报你的空字符串在查询中,所以你生产

... VALUES ('NULL') 

一个SQL空是一个关键字,而不能引用

[..snip...]) VALUES ('".$startSemester."')"); 
        ^------------------^--- remove these quotes 

引用它把它变成含有字母NUL,的字符串,当插入到int字段时,将简单地转换为0

+0

如果'$ startSemester =“有些字符串”;'? – 2014-09-25 20:16:30

+2

然后由OP来处理这种情况。 – 2014-09-25 20:16:52

+1

正是Fred ... – Whoa 2014-09-25 20:17:02

0

试试这个:

mysqli_query($gradschool_application_2_connect, "INSERT INTO Application (startSemester) VALUES ($startSemester)"); 
+0

这是如何解决问题的? – 2014-09-25 20:18:55

相关问题