PDO, MySQL et erreurs détaillées : comment faire
Voici mon ancien code d’exécution des requêtes SQL :
$stmt = self::$_pdo->prepare($sql); if ($stmt===false) { } foreach ($tab as $key=>$valeur) { $stmt->bindValue($key, $valeur); } $stmt->execute(); if ($stmt===false) { throw new Exception( "Erreur execution de la requete :\n\"".$sql."\"\n". "Paramètres de la requete :\n\"".var_export($tab, true)."\"\n". "Details de l'erreur : \n".var_export(self::$_pdo->errorInfo(), true) ); }
Le seul (gros) problème, c’est sur erreur d’exécution, il n’y avait aucune explication claire (détail = erreur 0x00). J’ai trouvé la solution : il faut dire de lever une exception si erreur :
self::$_pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
Et maintenant, tout problème d’exécution de query lève une exception qui contient une erreur vraiment détaillée et utile de la requête.
Bonjour
J’ai une problème dans mon projet fin d’études.
Comment définir une requête SQL générique en Delphi pour que je puisse exécuter n’importe quelle requête avec n’importe quel paramètre ?
Par avance un grand merci,
Abir