Сегодня я наблюдаю очень странное поведение и не знаю, что с этим делать.Мы использовали codeigniter на нашем сайте уже более года, и сегодня, когда я нажал на одну из наших страниц, я увидел ошибку базы данных, показанную мне.Я быстро открыл контроллер для этой страницы и обновился, чтобы увидеть его снова, но на этот раз этого не произошло, и я не смог заставить его снова сработать там.
Хмм, тревожно.
Я перешел на несколько других страниц, и это случилось снова на другой, на этот раз я посмотрел, где он потерпел неудачу, и он умер при запросе, подобном следующему:
SELECT `foo`.`ID_NO` JOIN `bar` ON `bar`.`foo_ID` = `foo`.`ID_NO` WHERE `someSetting` = 0 AND `bar`.`Filter_ID` = '123'
... подождите секунду, где же«ОТ foo», что должно быть там?
Я посмотрел на мой контроллер моделей, и он попытался выполнить следующие строки кода:
$this->db->select("foo.ID_NO");
$this->db->from('foo');
$this->db->join('bar','bar.foo_ID = foo.ID_NO');
Это код, который работалв течение года и ошибки, подобной этой, нигде раньше не было.Очень похоже, что «$ this-> db-> from ('foo');"просто не произошло.
Я перешел на кучу других страниц сайта, и это происходило несколько раз, опять та же проблема, когда запрос не был правильно построен и была выдана ошибка базы данных.При обновлении ошибка всегда уходила.Я не видел повторения на каких-либо страницах, и при этом я не видел пропуск страницы и затем сбой в более позднее время.
Есть две вещи, которые могут быть фактором: во-первых, я недавно добавил ошибку /обработчик исключений (но, насколько я могу судить, это не должно влиять на это, особенно не один раз, а затем и не снова).
Во-вторых, когда я начал использовать обработчик ошибок / ошибок, я обнаружил в CodeIgniters ошибку, которая была известна и исправлена путем изменения функции «is_loaded ($ class = '')» на «function & is_loaded ($ class = ').') "в Common.php из-за ошибки, произошедшей в Loader.php:« $ this -> _ base_classes = & is_loaded (); ».Это исправление, похоже, получило широкое признание, и ошибка, с которой я сталкиваюсь, не повторяется и, кажется, не связана, поэтому я также не верю, что это является причиной.
Я использую CodeIgniter версии 2.1.2,Кто-нибудь видел что-нибудь подобное раньше?Я не могу себе представить, в чем причина этого, но я не хотел бы, чтобы это происходило вне среды разработки, где я видел, что это происходит сегодня.
РЕДАКТИРОВАТЬ: Кроме того, моя необычная новая система регистрации ошибок, которую я упомянул, не сделалапротоколировать все, что пошло не так в функции db-> from: (