1

提交表单时出现以下错误:

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();
    }

在我的本地主机中没关系。但是在服务器中为什么它给我一个错误信息?

4

6 回答 6

2

可能该数据库的设置与您的本地设置不同。STRICT_TRANS_TABLES模式可能已打开。尝试SELECT @@GLOBAL.sql_mode;SELECT @@SESSION.sql_mode;

于 2013-02-25T04:48:44.153 回答
0

aid是一个整数列,并且您正尝试将其插入''其中。''不是数字,所以插入失败。

也许有一个服务器设置可以自动转换不正确的类型,但你不应该依赖它(正如你刚刚发现的那样)

于 2013-02-25T04:30:28.500 回答
0

这会导致错误帮助(INT) - 包含在您的表列(第一列)中。

如果它的自动增量删除''。

$insert = mysql_query("INSERT INTO brt_articles VALUES('$post_title', '$des', 
'$date', '$org_date')");  

问候

于 2013-02-25T04:32:53.167 回答
0

尝试

"INSERT INTO brt_articles VALUES('".$post_title."', '".$des."', '".$date."', '".$org_date."')"

首先删除''它不是必需的,因为 MySQL 会自动添加它,如果它primary keyauto_increment.

于 2013-02-25T04:35:02.407 回答
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')
于 2013-02-25T04:36:46.030 回答
0

您的本地数据库将该列的值设置为自动递增或具有默认值。

在服务器 db 上,表定义不一样。

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

于 2013-02-25T04:42:33.633 回答