2013-06-06 23 views
0

我试图插入Null到我的表中的一个字段,但该字段只是添加了一个0。在数据库中输入null?

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

该字段的类型是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().""; 
+0

这是主键还是fk? – Fabio

+0

将类型更改为varchar –

+0

要插入的字段或者具有缺省值或具有“NOT NULL”属性的数字数据类型 –

回答

0

您目前的尝试是什么?

这应该工作:

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

这不起作用 – panthro

0

将NULL到如果列有NOT NULL约束,则这将是不可能的一列;但在其他情况下,这是很好的:

INSERT INTO MyTable (MyIntColumn) VALUES(NULL); 
0

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

查看Lebugg的答案。

2

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

如果要插入NULL到现场,您可以:

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

你可以试试这个单柱:

INSERT INTO databasetable()VALUES();

如果要更新,然后:

update table set field = NULL where something = something 

不要把NULL引号内您的更新语句。

0

您需要做的是将列的默认值设置为NULL。那么如果你不插入一个值,你的列将包含NULL。请记住,如果特定列是PK/FK,则不可能。

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

这不起作用。我必须插入一个值。可以是数字1,2,3等或''。 – panthro

+0

在此处张贴查询 – Techie

+0

更新的原始帖子与查询 – panthro