在我的SQL数据库中有很多这样的字段: 字段类型:文本空:是默认值:NULL
我的INSERT看起来像这样:
INSERT INTO tbl (col,col,col,...) VALUES ('val','val','val',...)
现在,我的INSERT语句的值中的引号是在我真正想要的东西(NULL)中插入''(空字符串)到数据库中。
所以我试过
if (isset($_POST['title'])) {$newTitle = mysql_real_escape_string(trim($_POST['title']));} else {$newTitle = NULL;}
并且只插入'NULL' - 包含单词NULL的字符串。
我可以做些什么来确定我的NULL值是否正确插入?
答案 0 :(得分:2)
您可以尝试添加NULL而不使用下面的引号示例:
INSERT INTO tbl (col,col,col,...) VALUES (NULL,'val','val',...)
还要确保要使用纯null的列必须勾选允许的空值。
答案 1 :(得分:2)
你所拥有的是好的,但你需要将它与准备好的陈述相结合......
// prepare the statement
$stmt = $mysqli->prepare("INSERT INTO tbl (title, x,y,z) values (?,?,?,?)");
$stmt->bind_param($newTitle, $x,$y,$z);
$x = 'hello, world';
// execute prepared statement
$stmt->execute();
如果x或newTitle为NULL,则它们在DB
中将为NULL答案 2 :(得分:0)
不要在INSERT INTO中指定字段或提供值。 如果你有3个字段,f1 f2 f3 你呢
INSERT INTO tbl (f1, f3) VALUES ('something', 'something')
然后不会插入f2并默认为null。
答案 3 :(得分:-1)
我使用'0'而不是null。使用if语句时,可以运行
之类的查询if($row['f2'] == 0){...
而不是null:)