I am developing a wordpress site and I would like to be able to log and handle mysql errors from wordpress core.

My site has a mix of wordpress pages and posts + a few php pages that run under the wordpress engine. I configured the php.ini to prepend a php file to all php scripts with the error handling functions. They are working fine to catch php errors both in the wordpress core and in my own php scripts.

I also catch all the MySQL errors in my own php scripts. For example, failure to connect to a database, etc.

I would like to be able to also catch, log and process eventual MySQL errors from the wordpress core application.

Any suggestions?

Thanks.

I was reading through the codex and I couldn’t find an answer

3 s
3

You should be using the wpdb class for all your own queries. All core queries also use wpdb. See wpdb Show and Hide SQL Errors

<?php $wpdb->show_errors(); ?> 
<?php $wpdb->hide_errors(); ?> 

You can also print the error (if any) generated by the most recent query with print_error.

<?php $wpdb->print_error(); ?>

Also see SAVEQUERIES constant for wp-config.php:

define('SAVEQUERIES', true);

usage example:

<?php
if (current_user_can('administrator')){
    global $wpdb;
    echo "<pre>";
    print_r($wpdb->queries);
    echo "</pre>";
}
?>

There are also a number of helpful debugging plugins, like Debug Bar & Console. Search the WordPress plugin repository for this and other debugging related plugins.

Tags:

Leave a Reply

Your email address will not be published. Required fields are marked *