PDA

Просмотр полной версии : [Вопрос] MySQL -d3



NooB.pwn
20.08.2015, 00:59
Есть ли какая нибудь функция для мускла типо -d3.
Чтобы найти на каких это строчках ошибки?

[23:53:07] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('-1')
[23:53:07] [ERROR] cache_get_field_content_int - invalid datatype
[23:53:07] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('-1')
[23:53:07] [ERROR] cache_get_field_content_float - invalid datatype
[23:53:07] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('-1')
[23:53:07] [ERROR] cache_get_field_content_float - invalid datatype
[23:53:07] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('-1')
[23:53:07] [ERROR] cache_get_field_content_float - invalid datatype
[23:53:07] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('-1')
[23:53:07] [ERROR] cache_get_field_content_float - invalid datatype
[23:53:07] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('-1')
[23:53:07] [ERROR] cache_get_field_content_float - invalid datatype

Daniel_Cortez
20.08.2015, 01:28
Сейчас единственный плагин, который читает отладочную инфу из скрипта - crashdetect. И то он отлавливает только ошибки, происходящие в виртуальной машине AMX, на ошибки в других плагинах он никак не реагирует.

Можете попробовать и самостоятельно найти строки, в которых находится ошибка.
Внимательно посмотрите на свой отрывок лога: один вызов cache_get_field_content_int и 5 вызовов cache_get_field_content_float.
Можно обыскать все места, в которых используется cache_get_field_content_int и проверить, находятся ли следом 5 вызовов cache_get_field_content_float.

$continue$
20.08.2015, 15:07
А mysql_debug, не судьба?


mysql_log(LOG_ALL);

Он же выведет все запросы. Потом можно отыскать запрос (Это скорее всего SELECT, он его в лог покажет).

NooB.pwn
21.08.2015, 02:04
Нашёл проблему вот код помогите решить http://pastebin.com/svM0ajWt
а это mysql log http://pastebin.com/SNntK7yB

$continue$
21.08.2015, 02:22
Так понимаю версия R33+?

NooB.pwn
21.08.2015, 02:35
Так понимаю версия R33+?

R39-2

Daniel_Cortez
21.08.2015, 17:00
Нашёл проблему вот код помогите решить http://pastebin.com/svM0ajWt
а это mysql log http://pastebin.com/SNntK7yB
Ок, посмотрите ещё раз на тот цикл. Переменная h принимает значения от 0 до connects-1.
В базе данных нумерация начинается с 1, а потому нужно прибавлять 1 к значению в переменной h, чтобы в функциях cache_get_field_content_* обратиться к нужной записи. Вместо этого вы почему-то отнимаете 1, из-за чего при h==0 идёт обращение к сущности с номером -1, отсюда и сообщения об ошибках в логе.

$continue$
21.08.2015, 17:32
Код не соответствует функционалу плагина, то есть cache_get_row_count - это же вроде для однопоточных запросов? (Точно не могу сказать)