SQL错误 - 不正确的整数值
我收到以下错误,当我提交表单:SQL错误 - 不正确的整数值
Can't added a new post. Incorrect integer value: '' for column 'aid' at row 1
PHP代码:
$insert = mysql_query("INSERT INTO brt_articles VALUES('', '$post_title', '$des',
'$date', '$org_date')");
if($insert)
{
echo "<font color=green>Successfully added a new article.</font>";
header("Refresh:3; url=allbrtarticle.php");
}
else
{
echo "<font color=red>Can't added a new post</font>" .
mysql_error();
}
在我的本地也没关系。但在服务器为什么它给我一个错误消息?
aid
字段不接受''
值作为输入。
最安全的方法是在发送查询时指定列名称。
INSERT INTO brt_articles (title_field, description_field, date_field, org_date, fieldname) VALUES('$post_title', '$des', '$date', '$org_date');
如果aid
是主键,只是省略查询
INSERT INTO brt_articles VALUES('$post_title', '$des', '$date', '$org_date')
谢谢@Starx处理你的第一个陈述。但是我已经设置了主键和自动增量的帮助列。那么为什么你的第二个陈述不起作用? – 2013-02-25 04:50:07
而我上传它(我的代码)到另一台服务器,但它工作正常! – 2013-02-25 04:52:01
aid
是一个整数的列,并且您试图将''
插入到该列中。 ''
不是一个数字,所以插入失败。
也许有一个服务器设置为自动转换的类型不正确,但你不应该依赖它(如你刚刚发现)
这将导致错误援助(INT) - 这包含在你的表格列(第一列)中。
如果它的自动增量删除''。
$insert = mysql_query("INSERT INTO brt_articles VALUES('$post_title', '$des',
'$date', '$org_date')");
问候
这是一个自动增量字段。 – 2013-02-25 04:34:49
为什么它不在我的本地主机中给我提供错误信息? – 2013-02-25 04:35:21
如果其自动增量字段不应该添加值。 – BizApps 2013-02-25 04:37:46
尝试
"INSERT INTO brt_articles VALUES('".$post_title."', '".$des."', '".$date."', '".$org_date."')"
删除第一''
它不需要像MySQL如果自动添加其primary key
和auto_increment
。
本地数据库有一个列设置为自动递增的值或具有默认值字段。
在服务器db上,表的定义是不一样的。
查看并比较表格定义,然后使其一致。
如果他将本地数据库表上传到服务器,那么你的陈述是不正确的。 – 2013-02-25 04:44:00
谢谢 - 现在我看到不存在的文本,他说他上传本地数据库表到服务器 – mson 2013-02-25 04:48:48
可能是DB有不同于你本地的设置。 STRICT_TRANS_TABLES模式可能已打开。 尝试SELECT @@GLOBAL.sql_mode;
和SELECT @@SESSION.sql_mode;
。
列'aid'的类型是什么? – 2013-02-25 04:30:52
在数据库表中将'aid'改为'autoincrement'会解决这个问题。 – 2013-02-25 04:31:20
那么,@马丹萨波塔,我正在检查它.. – 2013-02-25 04:32:14