Sql错误 - 不正确的整数值

时间:2013-02-25 04:28:59

标签: php mysql

我在提交表单时遇到以下错误:

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中没关系。但在服务器中为什么它会给我一个错误信息?

6 个答案:

答案 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 keyauto_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上,表定义不一样。

查看并比较表定义,然后使它们保持一致。