Ho familiarità con MySQLi e stavo provando PDO, ho sentito che è meglio. Stavo passando per il tutorial presente here. Dicono che PDO genera un'eccezione quando PDO :: ERRMODE_EXCEPTION è impostato e accidentalmente si sbaglia qualcosa con la query (ad esempio, digitandola in modo errato, DELECT invece di SELECT). Ho digitato la stessa query errata per vedere il messaggio di errore ed eccezione sul mio ambiente locale. Ho installato WAMP di ultima generazione con PHP 5.5, MySQL 5.6 e Apache 2.4.9 nel mio PC Windows 7 a 32 bit, ma non ho ottenuto ciò che mi aspettavo, nessuna eccezione è stata lanciata lì. Ho provato lo stesso codice pubblicato nel tutorial:PDO che non genera eccezioni su query SQL errate
try {
$DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
# UH-OH! Typed DELECT instead of SELECT!
$DBH->prepare('DELECT name FROM people');
}
catch(PDOException $e) {
echo "I'm sorry, Dave. I'm afraid I can't do that.";
file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND);
}
No PDOError.txt, nessun messaggio di errore. Qualcosa non va nel tutorial o nel mio ambiente? O ci sono casi in cui PDO non riesce a generare eccezioni? Ho installato un driver PDO per MySQL.
Probabilmente non riuscendo perché la query non viene eseguito ed è in attesa di ulteriori istruzioni. Eseguilo e vedi se genera un'eccezione. –
$ DBH-> query ('DELECT name FROM people'); eseguirà la query –
Indovina cosa Fred, hai assolutamente ragione. L'esecuzione fa il lavoro. Grazie mille. –