web-dev-qa-db-ja.com

$ wpdb-> get_results()により生成されたエラーを検出する

$ wpdb-> get_results()を使用したときにエラーを検出するにはどうすればいいですか?

例えば:

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

上記のコードでは、例外やエラーは発生しません。単に$ resultを空の配列に設定します。 get_results()によって生成されたエラーをどのようにして確実に検出するのですか?

9
rinogo

最後のエラー文字列を格納するクラス変数があります - $ 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;
}
7
bytesnz

私が見つけることができる最高のものは:

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

残念ながら、これで問題が解決することはほとんどありません。エラーを単に出力ストリームにエコーするのではなく、プログラムで処理したいのです。

1
rinogo