=== PDO : Procédure Décidément Obscure !
Résolu/Fermé
heliconius
Messages postés
539
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
23 juin 2023
-
16 avril 2020 à 18:02
heliconius Messages postés 539 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 - 17 avril 2020 à 17:58
heliconius Messages postés 539 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 - 17 avril 2020 à 17:58
A voir également:
- === PDO : Procédure Décidément Obscure !
- Php pdo insert array ✓ - Forum PHP
- Pdo fetch vs fetchall ✓ - Forum Webmastering
- Formulaire de connexion php avec pdo - Forum PHP
- Requête Update et Delete en PDO ✓ - Forum PHP
- Problème avec mon WHERE de ma requete pdo ✓ - Forum PHP
1 réponse
jordane45
Messages postés
38451
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 mars 2025
4 739
17 avril 2020 à 08:29
17 avril 2020 à 08:29
Bonjour,
Ta question n'a pas de rapport avec mysql ... mais avec l'utillisation des try/catch (qui peuvent (doivent) s'utiliser ailleurs que avec le PDO...)
Je déplace donc ta question dans le forum php.
la variable $e contient plusieurs choses,
et au lieu d'en faire un echo.. rien ne t’empêche de stocker dans une variable.
Ta question n'a pas de rapport avec mysql ... mais avec l'utillisation des try/catch (qui peuvent (doivent) s'utiliser ailleurs que avec le PDO...)
Je déplace donc ta question dans le forum php.
la variable $e contient plusieurs choses,
public function getMessage(); // Exception message public function getCode(); // User-defined Exception code public function getFile(); // Source filename public function getLine(); // Source line public function getTrace(); // An array of the backtrace() public function getTraceAsString(); // Formated string of trace
et au lieu d'en faire un echo.. rien ne t’empêche de stocker dans une variable.
17 avril 2020 à 15:49
Voici mon script de connexion (qui remplacera mon init.php). J'essaye de faire différents tests avec PDO::ERRMODE_EXCEPTION, PDO::ERRMODE_SILENT pour voir les différences et choisir ce qui convient le mieux pour ce que j'ai à faire. Dans le script ci-dessous j'ai essayé les deux sans voir de différence. Intérêt ? Pourquoi ?
J'essaye aussi avec ce script de connexion de provoquer différentes erreurs (mauvais mot de passe ou utilisateur, base inexistante, mauvais host, etc...) pour découvrir leur numéro d'erreur (à traiter par le switch())
- Si j'essaye d'utiliser un serveur de BDD sur un hôte existant et connecté sur lequel ce serveur n'est pas installé, l'erreur retournée est 0
- Si je mets un nom de base inexistante, l'erreur retournée est 1044
- Si je mets un mot de passe erroné ou un utilisateur inexistant sur ce serveur, l'erreur retournée est 1045.
- si je me connecte à un hôte sur lequel MySQL est installé mais auquel je n'ai pas accès, ou avec un numéro de port incorrect ou s'il n'y a pas de serveur MySQL installé, l'erreur retournée est 2003.
- En revanche, si je définis un SERVER avec un numéro IP inexistant (IP dynamique non encore connectée) ou un hôte probablement protégé par un firewall (www.microsoft.com, www.darty.fr, etc...) aucune erreur n'est retournée mais le script reste en attente de connexion jusqu'à un Ctrl-C. Y a-t-il moyen d'éviter cela et de retourner l'erreur correspondante ?
17 avril 2020 à 15:57
Pour le "mode d'erreur"
17 avril 2020 à 17:58
Vu pour PDO::ERRMODE_SILENT et/ou PDO:ERRMODE_EXCEPTION.
Pour le PDO:ATTR_TIMEOUT, j'ai du "bidouilller" :
J'ai dû procéder tel que ;
Là, c'est bon. Sinon, je n'ai pas su définir le timeout avec $cnx->setAttrubute()
Qu'est-ce qui n'allait pas ?
En tout cas, un grand merci pour ton aide. J'hésitais sérieusement avec MySQLi et PDO mais finalement t'as été le déclencheur. Je pense qu'après m'être fait la main sur cette API, je vais m'attaquer à revoir tout mon site. Là, je vais avoir de quoi m'occuper... Merci.
PS: Je fermerai le fil d'ici un à deux jours si je n'ai plus d'autres questions à poser.