Bonjour,
Je suis en faire de faire un installeur pour une interface d'administration générique.
Sur la page où l'utilisateur doit rentrer ses informations de connexion pour la base de données, je fais une requête Ajax dans laquelle j'essaye de me connecter avec les valeurs qu'il a rentrées, et je renvoie un message d'erreur ou de réussite en conséquence.
Je sais qu'avec l'extension MySQL, je pouvais connaitre le type d'erreur en fonction du numéro d'erreur qu'il me renvoyait (avec mysql_errno), et donc savoir si c'est le nom d'hôte qui est invalide, ou le nom de base, ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $dsn = 'mysql:dbname='.$_POST['db_name'].';host='.$_POST['db_host']; try{ $conn = new PDO($dsn, $_POST['db_user'], $_POST['db_pwd']); }catch(PDOException $e){ $message = $e->getMessage(); /* traitement des erreurs */ }
Le problème, c'est que je ne vois pas comment faire de même avec PDO. J'avais essayé avec $e->getCode(), mais il renvoie toujours 0, donc ça ne m'avance pas à grand chose.
J'avais pensé éventuellement analyser la chaine $e->getMessage() : si elle contient 'Unknown MySQL server ...', je renvoie 'Nom d'hôte incorrect', ..., mais je trouve cette solution pas vraiment propre.
Si quelqu'un a une autre solution, ça m'aiderait bien.
Partager