¿Por qué este código de wordpress arroja un error de WPDB vacío?

1 minuto de lectura

estoy escribiendo un complemento de lector de feeds para wordpress. Veo un error de base de datos que no puedo descifrar. Primero yo crear una tabla llamada user_entries. Entonces pongo un ejemplo de entrada en esa tabla. Cuando intento borrar una entrada, aparece un error muy extraño en mi registro de depuración. Todavía no hay claves externas, no hay índices en la base de datos, etc.

[02-May-2012 11:21:52] Error de la base de datos de WordPress para la consulta ELIMINAR DE wp_wprss_user_entries
DONDE propietario_uid = 2 Y feed_id = 2; hecho por do_action, call_user_func_array, wprss_unsubscribe_feed, WprssFeeds->remove

Entonces, ¿cuál es el error? Solo está en blanco allí. Esto no parece un SQL complicado y funciona bien en la ventana de consulta de phpmysql. No estoy seguro de qué hacer para el próximo paso ahora, ¡y me gustaría que la gente pudiera darse de baja de una fuente!

¡Lo averigué! $wpdb->print_error() imprime esa cadena de error incluso si no hay un error. Entonces, debe verificar explícitamente si la consulta devolvió falso, no 0.

    if(false === $wpdb->query($sql)){
      $resp->uf_error = $wpdb->print_error();
    }

  • Gracias, esto ayudó. Entonces encontré una respuesta más informativa. aquíincluyendo este código: if($wpdb->last_error !== '') { $wpdb->print_error(); }

    – kr37

    8 mayo 2015 a las 14:23


Intente dividir su consulta para que solo intente eliminar de 1 cláusula WHERE …

es decir:

DELETE FROM wp_wprss_user_entries WHERE owner_uid=2;
run query
DELETE FROM wp_wprss_user_entries WHERE feed_id=2;
run query

METRO

  • Eso en realidad va a eliminar más filas de las que desea eliminar.

    – MattK

    3 de mayo de 2012 a las 2:15

¿Ha sido útil esta solución?