mysql无法插入数据记录
web开发

最近心血来潮鼓捣起php来了。恩,学就学呗,虽说有一些j2ee基础,但还是得一步一步扎扎实实来。看完一些基础教程后,便试着写一个学习所有web开发的继"hello world"之后的又一必经程序——留言本。

一切都正常,直到测试的时候才发现怎么都无法插入记录到mysql中,sql语句都打印出来了,看着也没什么问题:

insert into message (user,title,content,lastdate) 

values ('','realfex','www.realfex.com','这是一个测试留言。',now())

程序中的代码为:

$sql="insert into message (id,user,title,content,lastdate) " .

"values ('','$_POST[user]','$_POST[title]','$_POST[content]',now())";

看着似乎也没什么问题。(其中id为主键,且为自增int类型)

修改了多处,折腾了许久,才发现问题所在:

在老版本的mysql中,对于自增类型的键值,可以赋为‘’,但在后来较新的mysql中, 这样就行不通了。必须给它赋成null,或者直接不给那列赋值。所以,解决办法:

1.原sql语句改成:

$sql="insert into message (id,user,title,content,lastdate) " .

"values (null,'$_POST[user]','$_POST[title]','$_POST[content]',now())";

2.改成:

$sql="insert into message (user,title,content,lastdate) " .

  "values ('$_POST[user]','$_POST[title]','$_POST[content]',now())";

 
其实也就是个“一个芝麻糕,不如一针细”的问题,但很多时候就是这种小问题让人劳心费神还未必能发现、解决。所以在这儿记录下来,一来希望能给自己养成个总结错误的好习惯,二则希望能给路过的菜胞们提供哪怕是细微的帮助。

4 条评论