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".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails) *** mise à jour 12/10/2014 ***

#1 Le 31/01/2013, à 20: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, à 12:49)


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

Hors ligne

#2 Le 01/02/2013, à 12: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 13.10 64 (Gnome-Shell, vivement autre chose !!! )
- Asus X5DAF - ATI 512Mo  - Ubuntu 12.04 AMD-64

Hors ligne

Haut de page ↑