最近心血来潮鼓捣起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())";