php - MYSQL意外插入多行

标签 php mysql sql duplicates sql-insert

我有一个问题,希望有人能帮助我。

我的问题是,每当我在“MainFile”中运行代码时,它都会输出添加条目的两个 ID,但是当我查看我的数据库时,我有 6 个条目两个......谁能告诉我为什么它会这样做?

注意:我只提供了类中的代码片段,因为提供完整类的代码太多了。这是唯一被执行的代码。

编辑历史中的代码

编辑:我在这篇文章的底部添加了一个调试日志,以验证我只为每个查询执行一次 SQL 代码。

编辑:我不再使用序列化方法,因为它显然不是存储此类数据的好主意。然而,即使我的新代码将每个单独的值存储在数据库中,我仍然得到三个条目而不是一个。所以,这是同样的问题。有什么事吗?

编辑:经过几天的调试,我已将范围缩小到导致问题的这一行

Throwlite::$systemSQL->executeSql("INSERT into ".SQL_COMMENTTHREADS_TABLE." (id, sort_order) values (DEFAULT, '2')");

您可以在此处查看 LiteSQL 类以供引用:http://pastebin.com/a4C6fF4u

另外,作为引用,下面是用于创建表的代码:

"CREATE TABLE IF NOT EXISTS `" . SQL_COMMENTTHREADS_TABLE . "` (`id` int unsigned NOT NULL AUTO_INCREMENT, `sort_order` int NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;"

而且,尽管我很确定这不重要,但这里是 SQL_COMMENTTHREADS_TABLE 被 bing 定义的地方。

define( 'SQL_COMMENTTHREADS_TABLE', "tl_comment_threads");

最佳答案

我不确定这是否能回答您的问题,但您似乎指定了要插入的 ID。我不确定您是否没有在您的 id 列上使用 PRIMARY KEY 或为什么它有效,但也许您想要这个:

INSERT INTO ". SQL_COMMENTS_TABLE . "(id, thread) VALUES (DEFAULT, ?)

关于php - MYSQL意外插入多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30524653/

相关文章:

php - 检查php中的链接是否损坏

mysql - dockerfile - 无法连接错误

mysql - 使用netbeans在microsoft access中创建数据库和在mysql中创建数据库之间的区别

PHP 登录使用错误的用户名和密码

sql - 如果您不在事务中,SET XACT_ABORT ON 是否会在存储过程中执行任何操作?

SQL 其中连接集必须包含所有值但可能包含更多

mysql - 从映射表中选择类别

php - 具有属性的 php soap 服务器如何工作,或者是否有一个了解属性的库?

php - Wordpress - 使用基于 MySQL View 中的数据的表创建帖子

php - 从 PHP 5.3.3 升级到 PHP 5.5 CentOS 6.9(Remi-release)WordPress SMF php-mysql 不起作用