Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как отлаживать MySQL запросы?
Форумы портала PHP.SU » » Работа с СУБД » Как отлаживать MySQL запросы?

Страниц (1): [1]
 

1. Ticksy - 18 Июля, 2011 - 14:09:32 - перейти к сообщению
Есть ли инструменты для отладки MySQL запросов? Например, тот же PHP всегда пишет мол на n строчке такая та ошибка, ожидалось то-то. MySQL же кидает кусок, который ей не понравился, и просит почитать мануал.
2. EuGen - 18 Июля, 2011 - 14:11:13 - перейти к сообщению
Выполняйте запрос в консоли или phpmyadmin. Ошибку покажет.
Если нужно через скрипт, то http://php.su/functions/?mysql_error (для расширения mysql*, для иных же найдёте в документации).
3. Ticksy - 18 Июля, 2011 - 15:19:38 - перейти к сообщению
EuGen пишет:
Выполняйте запрос в консоли или phpmyadmin. Ошибку покажет.
Если нужно через скрипт, то http://php.su/functions/?mysql_error (для расширения mysql*, для иных же найдёте в документации).

Ну так если через mysql_error, то там не информативно. Выплюнет кусок, который не понравился, и скажет RTFM. Мне бы хотелось что-то более информативное, наподобии обработчика ошибок в PHP.
4. Roler - 18 Июля, 2011 - 15:24:18 - перейти к сообщению
Ticksy
Что-то я не помню, чтобы сообщения об ошибках в РНР были подробнее Оо

По-моему и этой информации достаточно для отладки)
5. Ticksy - 18 Июля, 2011 - 15:46:06 - перейти к сообщению
Roler пишет:
Ticksy
Что-то я не помню, чтобы сообщения об ошибках в РНР были подробнее Оо

По-моему и этой информации достаточно для отладки)

Примеры я указал в первом посте.

Для банальных ошибок - да. Но, например, сегодня мускул писал "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'show='1' WHERE `id`='462'' at line 1". Долго проверял синтаксис, только потом дошло, что show принимает за ключевое слово (то то же в IDE подсвечивалось оно).

P.S. Я не SQL-профи, пока только учусь.
6. Roler - 18 Июля, 2011 - 16:06:12 - перейти к сообщению
Ticksy
Такие "говорящие" имена вообще не стоит юзать, их, конечно, можно заэкранировать, но лучше просто избегать.
Тоже когда-то подобная проблема возникла, но я пишу в Notepad++, так что догадываться самому пришлось)

Но это всё-таки редкий случай.
7. Champion - 18 Июля, 2011 - 16:21:52 - перейти к сообщению
Ticksy пишет:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'show='1' WHERE `id`='462''
Ну, это довольно информативное сообщение. Написано: у вас ошибка в синтаксисе, проверьте правильность синтаксиса возле "show='1' WHERE `...". Что может быть информативнее.
Другое дело что не всегда компилятор правильно сообщает о реальном месте ошибки, но это не только в mysql, это везде бывает
8. Slavenin - 18 Июля, 2011 - 17:25:34 - перейти к сообщению
чтобы меньше отлаживать, надо больше тренироваться Подмигивание

 

Powered by ExBB FM 1.0 RC1