我有一个问题,希望有人能帮助我。
我的问题是,每当我在“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/