Rilevamento degli errori generati da $ wpdb-> get_results ()


9

Come posso rilevare errori quando utilizzo $ wpdb-> get_results ()?

Per esempio:

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

Il codice precedente non genera eccezioni o errori; imposta semplicemente $ result su un array vuoto. Come possiamo rilevare in modo affidabile errori generati da get_results ()?

Risposte:


7

Esiste una variabile di classe che memorizza l'ultima stringa di errore - $ wpdb-> last_error. A proposito del modo in cui $ wpdb è codificato, se la query ha esito positivo, $ wpdb-> last_error sarà una stringa vuota, se fallisce, sarà la stringa di errore restituita da MySQL. Quindi qualcosa del genere farebbe il trucco.

$result = $wpdb->get_results("SELECT * FROM this is not a valid query");
if ($wpdb->last_error) {
  echo 'You done bad! ' . $wpdb->last_error;
}

Sembra ragionevole: non posso esaminarlo in questo momento, ma se funziona, sarebbe utile in futuro! Grazie! :)
rinogo,

Sono tornato su questo in un compito successivo - funziona alla grande! Ho inserito questo codice in una funzione; Ho aggiornato la tua risposta; Spero non ti dispiaccia!
Rinogo,

1

Il meglio che posso trovare è:

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

Sfortunatamente, questo non risolve il problema. Voglio gestire l'errore a livello di codice, non limitarmi a fare eco al flusso di output.


Suppongo che potrei sempre fare qualcosa di brutto intercettando il buffer di output ...: /
rinogo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.