php Mysql插入:无法再插入
我正在写新闻并将其插入数据库,我在3年前构建了代码,它运行良好,但我无法再插入,我不明白为什么:php Mysql插入:无法再插入,php,mysql,Php,Mysql,我正在写新闻并将其插入数据库,我在3年前构建了代码,它运行良好,但我无法再插入,我不明白为什么: $insert=mysqli_query($co,"INSERT INTO articles VALUES('','".addslashes(htmlentities($_POST['title']))."','".time()."','".nl2br(addslashes(htmlentities($_POST['msg'])))."')") or die("insert error: ".mys
$insert=mysqli_query($co,"INSERT INTO articles VALUES('','".addslashes(htmlentities($_POST['title']))."','".time()."','".nl2br(addslashes(htmlentities($_POST['msg'])))."')") or die("insert error: ".mysqli_error());
其中表项目获得结构id:int11自动增量、标题:text、日期:int11、消息:text
当我尝试它时,我遇到了插入错误消息,但是mysqli_错误消息是空的,所以我在phpmyadmin上尝试了一个假条目:
INSERT INTO articles VALUES('','testset','1396642210','FUUUUUU')
我得到1366-不正确的整数值:对于第1行的列'id'
但id是自动递增的???:
连接和数据库选择正常
我真的不明白发生了什么事,我处理这个请求已经有2/3年了,而且一直在工作。。。
有什么想法吗?您已经迁移到MySQL 5.7,它有了新的安全性和数据完整性检查:INT列不能再像以前那样保存字符串值 使用默认值,或仅在插入时不添加列: 或
如果列顺序发生变化,则安全性较低。最好不要将整数值加引号,这可能适用于时间戳列 对于自动递增的列,如您的id,您可以将其从查询中删除,然后添加要在查询中填充的列:
INSERT INTO `articles` (`title`, `timestamp`, `msg`) VALUES ('testeset', 1396642210, 'FUUUUUU');
addslasheshtmlentities$\u POST['title']=>使用准备好的语句。它们将更加安全。删除1396642210周围的引号,假设列是整数类型。也许您已经升级了MySQL,并且它的语法实施也发生了变化。对于GroupBy,您最近是否更改了任何可能影响此设置的内容?MySQL版本?PHP版本?网络服务器版本?网络服务器?重复做同一件事永远不会产生不同的结果,因此某些事情一定发生了变化。似乎来自版本,谢谢!谢谢,这是真的,我没有遵循版本更改,使用默认值工作,谢谢:
INSERT INTO articles VALUES (DEFAULT, ?, ?, ?);
INSERT INTO `articles` (`title`, `timestamp`, `msg`) VALUES ('testeset', 1396642210, 'FUUUUUU');