Обнаружение ошибок, генерируемых $ wpdb-> get_results ()


9

Как обнаружить ошибки при использовании $ wpdb-> get_results ()?

Например:

$result = $wpdb->get_results("SELECT * FROM this is not a valid query");

Предыдущий код не генерирует никаких исключений или ошибок; он просто устанавливает $ result в пустой массив. Как мы надежно обнаруживаем ошибки, сгенерированные get_results ()?

Ответы:


7

Существует переменная класса, в которой хранится последняя строка ошибки - $ wpdb-> last_error. Судя по тому, как кодируется $ wpdb, в случае успешного выполнения запроса $ wpdb-> last_error будет пустой строкой, в случае неудачи это будет строкой ошибки, возвращаемой MySQL. Так что-то подобное поможет.

$result = $wpdb->get_results("SELECT * FROM this is not a valid query");
if ($wpdb->last_error) {
  echo 'You done bad! ' . $wpdb->last_error;
}

Звучит разумно - я не могу сейчас в этом разобраться, но если это сработает, это пригодится в будущем! Спасибо! :)
риного

Вернулся к этому на более позднем задании - отлично работает! Я поместил этот код в функцию; Я обновил ваш ответ; Надеюсь, ты не против!
Риного

1

Лучшее, что я могу найти:

$wpdb->show_errors();
$result = $wpdb->get_results("SELECT * FROM this is not a valid query");
$wpdb->hide_errors();

К сожалению, это вряд ли решит проблему. Я хочу обрабатывать ошибку программно, а не просто выводить ее в выходной поток.


Полагаю, я всегда мог сделать что-нибудь неприятное, перехватив выходной буфер ...: /
rinogo
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.