0

我正在尝试将 Null 插入到我的表中的一个字段中,但该字段只是添加了一个 0。

我怎样才能让它成为一个空值?

该字段的类型为 int,默认值为 (NULL)。

$query = "INSERT INTO article (article_title, article_credits, article_excerpt, article_body, article_img_list, article_img_main, article_published, article_date, article_modified, article_author, article_gallery_id, article_gallery_title) ".
                    "SELECT '".$db->escape($post['title'])."', '".json_encode($credits)."','".$db->escape($post['excerpt'])."','".$db->escape($post['article'])."','".$db->escape($articleImageListName)."','".$db->escape($articleImageMainName)."','".$published."','".date("Y-m-d H:i:s", strtotime($post['date']))."','".date('Y-m-d H:i:s')."', email, '".$db->escape($post['gallery'])."', 'View gallery'".
                    "FROM sm_users WHERE id = ".$acl->getLoggedInUserId()."";
4

6 回答 6

2

您要插入的字段具有默认值或具有 NOT NULL 属性的数字数据类型。

如果要插入NULL该字段,您可以:

  1. 在插入时跳过该字段。
  2. 删除默认值。
  3. 更改/检查属性NULL?
  4. 更改索引/FK/PK(如果声明为 PK/FK 或 INDEX)。
于 2013-06-06T09:16:20.720 回答
0

你目前的尝试是什么?

这应该有效:

UPDATE my_table SET my_field = NULL WHERE id = <id>;
于 2013-06-06T09:11:10.257 回答
0

如果列具有 NOT NULL 约束,则向列 INSERT NULL 则不可能;但否则这很好:

INSERT INTO MyTable (MyIntColumn) VALUES(NULL);
于 2013-06-06T09:11:19.180 回答
0

Null 值 null 还是字符串 null?你可以在你的表中有“”(被表视为空,因为你允许在该列中为空),但如果你特别想要空,我会将字符串 null 放在那里,或者让它检查是否单元格为空(“”)。

有关执行此操作的方法,请参见 Lebugg 的答案。

于 2013-06-06T09:14:13.487 回答
0

你可以试试这个单列:

插入到database. table() 值 ();

如果你想更新,那么:

update table set field = NULL where something = something

不要NULL在更新语句中加上引号。

于 2013-06-06T09:18:49.843 回答
0

您要做的就是将列的默认值设置为NULL. 然后,如果您不插入值,您的列将包含NULL. 请记住,如果特定列是 PK/FK,则不可能。

UPDATE table_name SET field_name = NULL WHERE id = {id};
于 2013-06-06T09:19:03.907 回答