@maks78945

Логирование mysql запросов с ошибками?

Доброго времени суток, имеется очень старый сайт, в нем используется mysql_query(), некоторые запросы написаны с ошибками, в ручную искать очень долго, в проекте mysql_query вызывается больше 900 раз. Подскажите как можно логировать запросы с ошибками.
Для примера вызывается запрос
insert into table values( NULL, '58290', '111', '123', '\0\0\0', 'ru', '0', '0' );

в результате получаем ошибку
Error SQL (1136): Column count doesn't match value count at row 1

и хочется что бы эти запросы логировались и уже их искать по коду. Подскажите как можно это реализовать без включения полного логирования запросов?
  • Вопрос задан
  • 87 просмотров
Пригласить эксперта
Ответы на вопрос 3
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Берем еррорлог, поиск-"SQL" и смотрим глазками...
Ответ написан
Комментировать
@alexalexes
Пройдите регуляркой по запросам:
Вариант 1. Прописать всем insert явные названия полей.
Найдите случаи, когда перед values (через пробелы или переносы строк) нет закрывающийся скобки - пропишите явно названия полей для вставки.

Вариант 2. Подсчитать у всех insert для каждой table правильное кол-во значений для вставки.
По названию таблицы перед values и по запятым после values в скобках определить случаи, когда кол-во полей не то.

PS: Переведите проект на mysqli или PDO.
PSS: вангую, что в проекте полный треш с bind-ами параметров - тоже отдельная задача.
Ответ написан
Комментировать
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Обверните точку входа в try catch и логируйте. Вопрос только в чем смысл логирования если не планируете чинить?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы