Виявлення помилок, згенерованих $ wpdb-> get_results ()


9

Як виявити помилки під час використання $ wpdb-> get_results ()?

Наприклад:

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

Попередній код не створює жодних винятків або помилок; він просто встановлює $ результат на порожній масив. Як ми можемо надійно виявити помилки, згенеровані 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;
}

Звучить розумно - я зараз не можу розглянути це, але якщо це спрацює, це стане в нагоді в майбутньому! Дякую! :)
rinogo

Повернувся до цього на наступному завданні - чудово працює! Я поставив цей код у функцію; Я оновив вашу відповідь; Сподіваюся, ви не заперечуєте!
rinogo

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.