Continua la nostra rubrica appunti digitali, oggi vediamo come risolvere (e da cosa è causato) l’errore HY093 di PDO in pochi semplici passi.
L’errore si presenta il più delle volte con questa forma: PDOStatement::errorInfo(): Array ( [0] => HY093 [1] => [2] => ).
Il codice di errore HY093 viene generato quando viene bindata una variabile inesistente, non dichiarata, o comunque incorretta.
Ecco un esempio pratico:
$query = $this->PDO->prepare('INSERT INTO nazioni (id_nazione, descrizione_nazione) VALUES ( :id_nazione, :nazione_descrizione)'); $query->bindValue( ':id_nazione', 1); $query->bindValue( ':descrizione_nazione', 'W targetweb');
Come potete vedere “nazione_descrizione” viene passato alla query ma in realtà avete bindato erroneamente “descrizione_nazione” nei bindValue, questo genera l’errore.
Come visualizzare un report degli errori nelle query con PDO
Ricordo che per visualizzare gli errori PDO dovete usare la seguente sintassi subito dopo l’execute della query:
echo "\nPDOStatement::errorInfo():\n"; $arr = $q->errorInfo(); print_r($arr);
Se volete maggiori info per la gestione degli errori PDO vi invito a consultare la reference guide ufficiale.
Se non sai cosa sia PDO ti invito a leggere la nostra area tematica dedicata!
L’articolo ti è stato utile? condividilo qui sotto con i tuoi amici/colleghi!