在数据库中输入null?

时间:2013-06-06 09:09:28

标签: php mysql

我正在尝试将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()."";

6 个答案:

答案 0 :(得分:2)

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

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

  1. 在插入时跳过该字段。
  2. 删除默认值。
  3. 更改/检查属性NULL?
  4. 更改索引/ FK / PK(如果声明为PK / FK或INDEX)。

答案 1 :(得分:0)

您目前的尝试是什么?

这应该有效:

UPDATE my_table SET my_field = NULL WHERE id = <id>;

答案 2 :(得分:0)

如果列具有NOT NULL约束,则将NULL INSERT到列,那么它将无法实现;但除此之外没关系:

INSERT INTO MyTable (MyIntColumn) VALUES(NULL);

答案 3 :(得分:0)

空值为null或只是字符串null?你可以在你的表中使用“”(表被视为null,因为你在那一列中允许nullables),但是如果你想要null,我会把字符串null放在那里,或者让它检查是否单元格为空(“”)。

请参阅Lebugg的答案,了解如何做到这一点。

答案 4 :(得分:0)

您可以尝试使用单列:

INSERT INTO databasetable()VALUES();

如果您想更新:

update table set field = NULL where something = something

请勿在更新语句中将NULL放在引号内。

答案 5 :(得分:0)

您要做的是将列的默认值设置为NULL。然后,如果您没有插入值,则列将包含NULL。请记住,如果特定列是PK / FK,则无法进行。

UPDATE table_name SET field_name = NULL WHERE id = {id};