Rilevare errori generati da $wpdb->get_results()
Come posso rilevare gli errori quando utilizzo $wpdb->get_results()?
Ad esempio:
$result = $wpdb->get_results("SELECT * FROM this is not a valid query");
Il codice precedente non genera alcuna eccezione o errore; imposta semplicemente $result come un array vuoto. Come possiamo rilevare in modo affidabile gli errori generati da get_results()?
Esiste una variabile di classe che memorizza l'ultima stringa di errore - $wpdb->last_error. Dal modo in cui $wpdb è codificato, se la query ha successo, $wpdb->last_error sarà una stringa vuota, se fallisce, conterrà la stringa di errore restituita da MySQL. Quindi qualcosa come questo farebbe al caso nostro.
$result = $wpdb->get_results("SELECT * FROM this is not a valid query");
if ($wpdb->last_error) {
echo 'Hai fatto un errore! ' . $wpdb->last_error;
}

Sembra ragionevole - non posso approfondire ora, ma se funziona, sarebbe utile in futuro! Grazie! :)

Il meglio che ho trovato è:
$wpdb->show_errors();
$result = $wpdb->get_results("SELECT * FROM questa non è una query valida");
$wpdb->hide_errors();
Sfortunatamente, questo non risolve il problema. Voglio gestire l'errore a livello di programmazione, non solo visualizzarlo nel flusso di output.
