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”,故应赋以字符串值而不是无值。

评论

《 “NULL 与 “NULL”” 》 有 11 条评论

  1. 第六空间 的头像

    中国时间一大清早沙发真多啊。 😀

    1. 流年 的头像
      流年

      嘛,那个时间段自然如此

  2. 扯远了 的头像

    技术 不懂 支持下

    1. 流年 的头像
      流年

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

  3. Ray Chow 的头像

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

    1. 流年 的头像
      流年

      因为受SQL语句的影响,所以……

  4. vastar 的头像

    喔。先记下,以后自己也注意下。

    1. 流年 的头像
      流年

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

  5. mice 的头像

    Ray Chow
    👿 已解…

    1. 流年 的头像
      流年

      ❓ 我有点疑惑

  6. Code之行人 的头像

    恩,数据库中保存的是 字符串, null 估计是编译器或者解释器 才能明白