Ecco un frammento del mio codice:messaggio di errore PDO?
$qry = '
INSERT INTO non-existant-table (id, score)
SELECT id, 40
FROM another-non-existant-table
WHERE description LIKE "%:search_string%"
AND available = "yes"
ON DUPLICATE KEY UPDATE score = score + 40
';
$sth = $this->pdo->prepare($qry);
$sth->execute($data);
print_r($this->pdo->errorInfo());
Questo mi dovrebbe dare un errore perché non esistono neppure i tavoli. Tutto quello che ottiene è però questo:
Array ([0] => 00000)
Come posso ottenere una migliore descrizione dell'errore in modo da poter eseguire il debug del problema?
provare a stampare l'errore dopo la preparazione, ma prima che l'esecuzione – thetaiko
L'errore sembra piuttosto chiaro per me,: search_string otterrà sostituito con qualcosa di simile a 'foobar' (comprese le virgolette), quindi la tua l'istruzione sql finale sarebbe simile a "% 'foobar'%" quello che devi fare è aggiungere% ai $ dati nell'istruzione -> execute().Dal momento che questo è stato 3 anni fa, sono sicuro che hai capito l'errore – relipse
A proposito, sto incontrando lo stesso problema, nessun messaggio di errore. L'unico modo per imparare a risolverlo è copiare e incollare l'SQL in phpmyadmin e cercare l'output. Qualcun altro lo ha capito? Ho provato le risposte qui sotto. – relipse