私はWordPressサイトを開発しています、そして私はWordPressコアからMySQLエラーを記録して処理することができたいです。
私のサイトはワードプレスのページと投稿が混在しています+ワードプレスエンジンの下で実行されるいくつかのPHPページ。私はphp.iniを設定して、エラー処理機能を持つすべてのphpスクリプトの前にphpファイルを追加しました。彼らはwordpressのコアと私自身のphpスクリプトの両方でphpエラーを捕らえるためにうまく働いています。
私は自分のphpスクリプトでMySQLのエラーもすべて捉えています。たとえば、データベースへの接続の失敗など.
私はまたwordpressのコアアプリケーションからのMySQLの最終的なエラーをキャッチし、記録しそして処理することができたいと思います。
助言がありますか?
ありがとう。
コーデックスを読んでいて答えが見つかりませんでした
あなたはすべてのあなた自身の問い合わせに対して wpdb
クラス を使うべきです。すべてのコアクエリーはwpdb
も使用します。 wpdb
を参照してください。SQLエラーの表示と非表示
<?php $wpdb->show_errors(); ?>
<?php $wpdb->hide_errors(); ?>
Print_errorを使用して、最新のクエリによって生成されたエラー(もしあれば)を印刷することもできます。
<?php $wpdb->print_error(); ?>
wp-config.php
の SAVEQUERIES定数も参照してください。 :
define('SAVEQUERIES', true);
使用例
<?php
if (current_user_can('administrator')){
global $wpdb;
echo "<pre>";
print_r($wpdb->queries);
echo "</pre>";
}
?>
Debug Bar&Consoleのような、便利なデバッグプラグインもたくさんあります。これと他のデバッグ関連のプラグインのためにWordPressプラグインリポジトリを検索してください。
これを行う1つの方法:
db.php
にwp-content
というファイルを作成します。 Wordpressは、$wpdb
オブジェクトをインスタンス化する直前にこのファイルを読み込みます。class
を拡張するwpdb
を作成し、必要に応じてprint_errors
メソッドを上書きします。$wpdb
を設定します(例、$wpdb = new wpdb2(DB_USER, DB_PASSWORD, DB_NAME, DB_Host);
)$wpdb
を使うようになります。やってみる
global $wpdb;
echo $wpdb->last_query;
私はAjaxを使っているので、これは直接文字列形式です。