Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#1 Le 31/01/2013, à 19:19

mao-40

[Résolu] Afficher erreurs PDO

Bonsoir,

Je cherche à afficher proprement les erreurs PDO sur mes différents sites. J'étais habitué à écrire :

$req = $bdd->prepare('
SELECT `série de champs`
FROM `table`
');
$req = $bdd->execute() or die(print_r($bdd->errorInfo()));

Je lis un peu partout que le or die, même s'il est rentré dans les moeurs n'est pas une bonne façon de faire et qu'il vaut mieux utiliser :

try {
$options = array(
	PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
	PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
	);
$bdd = new PDO('mysql:host=localhost;dbname=****', '*****', '*******', $options);
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
}
catch (PDOException $e) {
   echo 'Error : ' . $e->getMessage();
   die();
}
$req = $bdd->prepare('
SELECT `série de champs`
FROM `table`
');
$req = $bdd->execute() ;

Donc en utilisant : PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION suivi du catch...

Mais cela ne m'affiche rien contrairement à la 1° méthode.
Je ne sais pas s'il faut modifier le php.ini ou autre pour cela.

Merci pour votre aide

Dernière modification par mao-40 (Le 01/02/2013, à 11:49)


- * HP Quad Core Q9300 2,5GHz - 6Go - Nvidia GeForce GT 610 1Go - Ubuntu 14.04 64 (Gnome-Shell, vivement autre chose !!! )
- Asus X5DAF - ATI 512Mo  - Ubuntu 12.04 AMD-64

Hors ligne

#2 Le 01/02/2013, à 11:49

mao-40

Re : [Résolu] Afficher erreurs PDO

Résolu par :

try {
$req = $bdd->execute() ;
}
catch (PDOException $e) {
   echo 'Error : ' . $e->getMessage();
   die();
}

- * HP Quad Core Q9300 2,5GHz - 6Go - Nvidia GeForce GT 610 1Go - Ubuntu 14.04 64 (Gnome-Shell, vivement autre chose !!! )
- Asus X5DAF - ATI 512Mo  - Ubuntu 12.04 AMD-64

Hors ligne

Haut de page ↑