У меня возникла проблема, и я надеялся, что кто-то сможет мне помочь.
Моя проблема в том, что всякий раз, когда я запускаю код в "MainFile", он выводит два идентификатора, в которые он добавил записи, но тогда, когда я просматриваю свою базу данных, вместо шесть записей из двух... Может ли кто-нибудь сказать мне, почему это может быть сделано?
Примечание. Я только предоставил фрагменты кода из классов, потому что предоставление полных классов было бы слишком большим количеством кода. Это единственный исполняемый код.
КОД В ИСТОРИИ ИЗДАНИЯ
Изменить: я добавил отладочный журнал в нижней части этого сообщения, проверяя, что я выполняю только код 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.
define( 'SQL_COMMENTTHREADS_TABLE', "tl_comment_threads");