¿Cómo registrar errores mysql desde wordpress core?

4

Estoy desarrollando un sitio de WordPress y me gustaría poder registrar y manejar los errores de MySQL desde el núcleo de WordPress.

Mi sitio tiene una mezcla de páginas de wordpress y publicaciones + algunas páginas php que se ejecutan bajo el motor de wordpress. Configuré el php.ini para anteponer un archivo php a todos los scripts php con las funciones de manejo de errores. Están trabajando bien para detectar errores de php tanto en el núcleo de wordpress como en mis propios scripts de php.

También detecto todos los errores de MySQL en mis propios scripts PHP. Por ejemplo, falla al conectarse a una base de datos, etc.

Me gustaría poder también capturar, registrar y procesar los posibles errores de MySQL desde la aplicación principal de wordpress.

¿Alguna sugerencia?

Gracias.

Estaba leyendo el códice y no pude encontrar una respuesta

    
pregunta jdias 25.01.2013 - 01:53

3 respuestas

6

Debería usar wpdb class para todas sus consultas. Todas las consultas básicas también utilizan wpdb . Consulte wpdb Mostrar y ocultar errores de SQL

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

También puede imprimir el error (si lo hubiera) generado por la consulta más reciente con print_error.

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

También vea Constantes de GUARDIAS para wp-config.php :

define('SAVEQUERIES', true);

ejemplo de uso:

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

También hay una serie de complementos de depuración útiles, como Debug Bar & Consola. Busque en el repositorio de complementos de WordPress para encontrar este y otros complementos relacionados con la depuración.

    
respondido por el Milo 25.01.2013 - 02:27
0

Una forma de hacer esto:

  1. Crea un archivo llamado db.php en wp-content . Wordpress leerá este archivo inmediatamente antes de crear una instancia del objeto $wpdb .
  2. Cree un class que extienda wpdb , y sobrescriba el método print_errors para hacer lo que quiera.
  3. Al final de ese archivo, cree una instancia de su clase, configurándola como la variable $wpdb (por ejemplo, $wpdb = new wpdb2(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST); )
  4. Wordpress ahora usará tu $wpdb en su lugar.
respondido por el blockhead 21.05.2013 - 17:10
0

prueba con

global $wpdb;
echo $wpdb->last_query;

ya que estoy trabajando con ajax, esto es directamente en forma de cadena.

    
respondido por el insidepower 13.06.2015 - 04:08

Lea otras preguntas en las etiquetas