Mysql - PDO Erreur Invalide nom de catalogue: 1046 Pas de base de données sélectionné
J'ai un problème avec PDO, et je ne vois absolument pas d'où il viennent. Je ne peux pas remettre en question ma base de données MySQL. Juste pour tester, j'ai utilisé le code suivant (en ayant bien sure déjà configuré les paramètres de la connexion:
try {
$dbh= new PDO('mysql:host=serverName;dbname=Mydatabase','user','password');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (Exception $e) {
die('Erreur : ' . $e->getMessage());
}
var_dump($dbh); //gives : object(PDO)#1 (0) { }
$res=$dbh->query('SELECT * FROM table');
La connexion se fait correctement avec MySQL, mais après une requête, j'obtiens cette erreur:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[3D000]: Invalid nom de catalogue: 1046 Pas de base de données sélectionné" dans /home/sortie/public_html/fichier.php:16 Stack trace: #0 /home/outout/public_html/file.php(16): PDO->query('select * from t...') #1 {principal} jeté dans /home/outout/public_html/file.php sur la ligne 16.
Le code fonctionne sur un ordinateur local, mais dès que je l'ai mis en ligne (cPanel) il m'indique cette erreur. Dois-je configurer PDO dans .htaccess?
Je ne comprends absolument pas où est le problème venir. Quelqu'un aurait une idée?
- L'erreur est très clair :
No database selected
!! afin de vérifier le nom de votre base de données. - j'ai vérifier le nom de ma db, et je vois que c'est correct merci
- Sans savoir ce que votre hôte MySQL et nom de base de données sont sur votre CPanel hôte et si oui ou non ils correspondent aux paramètres de votre DSN (premier argument de la
PDO
constructeur), c'est impossible de répondre. - Essayez également de vérifier votre hôte, je pense que pour l'hébergement mutualisé, il est généralement
localhost
. - merci beaucoup cela fonctionne avec localhost 🙂 mais localhost c'est pas pour la machine locale !!
- Pour couper des raisons de sécurité, nous utilisons
localhost
pour éviter les connexions externes. Localhost ici représentent votre serveur. - ah ok, merci, vous êtes la personne de ma soirée 🙂 rabi ybarak fik
Vous devez vous connecter pour publier un commentaire.
Aider Mysql résoudre le manche.
Au lieu de:
Essayer:
J'ai connu le même problème alors que pas de mentionner "l'hôte" de la chaîne avec 'mysql' mysql:host). J'ai résolu le problème en suivant le code.
Au lieu de:
viens de faire:
Vous serez bon d'aller.
Ce n'est pas bon. Vous ne pouvez pas avoir host=serverName, au lieu de cela, vous devez avoir quelque chose comme host=$nom_serveur, puis l' $serverName = "nom du serveur.domanin"; de même avec dbname=Mabase, vous avez besoin pour faire de ces variables, $Mabase="mabase", il devrait ressembler à ceci:
cela fonctionne.
Plus de détails sur: http://www.w3schools.com/php/php_mysql_connect.asp
J'ai eu la même erreur, et c'est parce que au lieu d'utiliser dbname=$dbname en chaîne, j'ai utilisé $dbname=$dbname, juste une faute de frappe. Vous avez besoin d'écrire la chaîne correctement !
J'ai fait face à un même problème. La résolution de problème a été enlevé, l'espace entre le nom d'hôte et dbname variable comme suit:
De:
$conn = new PDO("mysql:host = $servername;dbname = $dbname, $username, $password);
À:
$conn = new PDO("mysql:host=$servername;dbname=$dbname, $username, $password);
Ce qui s'est déclenché m'a que j'ai copié la base de données nom de l'arbre dans MySQL workbench et collé dans le settings.php fichier.
Il s'avère que les apostrophes au début et à la fin de la chaîne sont des faux apostrophes! J'ai supprimé et les mettre dans de vraies apostrophes et tout tiré à droite vers le haut. M'a fallu plusieurs heures pour comprendre cela.
Espérons que cela aide quelqu'un d'autre.
Utilisation
au lieu de