我在提交表单时遇到以下错误:
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();
}
在我的Localhost中没关系。但在服务器中为什么它会给我一个错误信息?
答案 0 :(得分:2)
DATA与本地设置不同的概率。可能会启用STRICT_TRANS_TABLES模式。
试试SELECT @@GLOBAL.sql_mode;
和SELECT @@SESSION.sql_mode;
。
答案 1 :(得分:0)
aid
是一个整数的列,您尝试将''
插入其中。 ''
不是数字,因此插入失败。
也许有一个服务器设置可以自动转换不正确的类型,但你不应该依赖它(正如你刚刚发现的那样)
答案 2 :(得分:0)
这会导致错误援助(INT) - 它包含在您的表格列(第一列)中。
如果自动增量删除''。
$insert = mysql_query("INSERT INTO brt_articles VALUES('$post_title', '$des',
'$date', '$org_date')");
此致
答案 3 :(得分:0)
试
"INSERT INTO brt_articles VALUES('".$post_title."', '".$des."', '".$date."', '".$org_date."')"
删除第一个''
,因为MySQL primary key
和auto_increment
会自动添加它。
答案 4 :(得分:0)
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')
答案 5 :(得分:0)
您的本地数据库将该列的值设置为自动增量或具有默认值。
在服务器db上,表定义不一样。
查看并比较表定义,然后使它们保持一致。