php Mysql 插入 : can't insert anymore

标签 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: ".mysqli_error());

其中表文章获取结构(id:int(11) auto_increment,title:text,date:int(11),msg:text)

当我尝试时,我陷入了“插入错误”消息,但 mysqli_error() 消息是空的,所以我在 phpmyadmin 上尝试了一个假条目:

INSERT INTO articles VALUES('','testset','1396642210','FUUUUUU')

我得到#1366 - 不正确的整数值:第 1 行的“id”列的“” (但是 id 是自动递增的 ??:/)

(连接和数据库选择都正常) 我真的不明白发生了什么,我已经处理这个请求 2/3 年了,而且它正在工作...... 有什么想法吗?

最佳答案

您已迁移到 MySQL 5.7,该版本具有新的安全性和数据完整性检查:INT 列不能再将 STRING 值保存为 '' .

使用DEFAULT作为值,或者只是不要在INSERT中添加该列:

INSERT INTO articles (title, date, msg) VALUES (?, ?, ?);

INSERT INTO articles VALUES (DEFAULT, ?, ?, ?);

如果更改列顺序,则安全性较差。

关于php Mysql 插入 : can't insert anymore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39764342/

相关文章:

php - 10,000,000行数据库的最佳存储引擎

php - 为什么这个 MySQL UPDATE 命令不起作用?

C++:如何在类中创建和使用 mysql 连接

mysql - 奇怪的 SQL 代码 : Why do they use a subquery instead of join?

php - PHP中的异步函数调用

php - 序列号在 PHP MySql 表中不起作用

php - mySQL - 如何根据指定列是否包含指定值来列出行?

php - 仅在 mysql 中选择第一次出现的记录集组合

php - PHP 登录表单代码中跳过了一个 IF block

php - 带有jquery post的Mysql选择框