NULL 与 “NULL”

向往数据库中插入数据,其中有些项可能为空(NULL),直接的查询语句如下:

-- content text
-- parent int
insert into msg(content, parent) values("Test message", NULL);

不过,需要考虑的是,上面的parent不一定为空,而是根据情况判断。当需要为空时,插入到数据库中的是NULL。所以需要采用变量的方式而不是硬coding,如:

$query = "insert into msg(content, parent) values('$content', $parent)";

在这里折腾了好久,因为一直通不过,后来才发现在判断该插入空的时候变量的PHP代码不正确。

# wrong
parent = NULL;
# rightparent = "NULL";

PHP中的NULL代表的是无值(no value),而实际上数据库中需要的是“NULL”,故应赋以字符串值而不是无值。

11条评论

    1. 不是什么高技术,只是个人记录一下而已

  1. 数据库查询语句接受的当然只能是字符串啦,你传入一个null就等于没传咯

    1. 这些小地方,通常是自己遇到的时候才会发现

评论已关闭。