$ 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;
}

妥当に聞こえます-今のところこれを調べることはできませんが、これがうまくいけば、将来役に立つでしょう!ありがとう!:)
rinogo 2015

後の課題でこれに戻ってきました-うまくいきます!このコードを関数に入れました。回答を更新しました。よろしくお願いします!
rinogo

1

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

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

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


私は常に出力バッファをインターセプトすることで何か厄介なことをすることができると思います...:/
rinogo
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.