Connexion php à mysql

Résolu/Fermé
akimacker Messages postés 6 Date d'inscription lundi 3 septembre 2018 Statut Membre Dernière intervention 10 octobre 2018 - Modifié le 3 sept. 2018 à 12:29
 Utilisateur anonyme - 3 sept. 2018 à 20:08
Bonjour, s'il vous plaît, quelqu'un pourrait m'aider? La création d'une base de donnée marche bien mais quand je crée une table il fait cette erreur SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected

Voici les codes :
<? php
$server = 'localhost';
$login = 'root';
$password = '';
try{
  $connexion = new PDO('mysql:host = $server; dbname=test', $login, $password);
  $connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $connexion->exec("CREATE TABLE utilisateur(nom varchar(50))");
  echo 'Réussi';
}
catch(PDOException $e){
  echo 'Echec de la connexion : '.$e->getMessage();
}
?>

EDIT : Ajout des balises de code

2 réponses

popozz Messages postés 218 Date d'inscription jeudi 5 mai 2016 Statut Membre Dernière intervention 22 mai 2021 176
3 sept. 2018 à 12:06
Salut. Déjà cette erreur veux dire que vous n'avez pas sélectionné de base de données. Ensuite pourquoi vous le faite en PHP ?
0
akimacker Messages postés 6 Date d'inscription lundi 3 septembre 2018 Statut Membre Dernière intervention 10 octobre 2018
3 sept. 2018 à 17:28
Oui, je sais que l'erreur a dit que je n'ai pas sélectionné une base de données mais en voyant mon code, j'ai déjà précisé dbname=test, et je crois qu'il n'y a pas d'erreur sur mes codes. Et j'aime tester la création de base de données en PHP.
0
akimacker Messages postés 6 Date d'inscription lundi 3 septembre 2018 Statut Membre Dernière intervention 10 octobre 2018
3 sept. 2018 à 19:48
Merci à vous de m'avoir répondu, ma question est résolue.
0
Utilisateur anonyme
Modifié le 3 sept. 2018 à 19:16
Bonjour

Dans ta requête de connexion, tu as mis la variable $server dans une chaîne entre simples apostrophes. Mais en PHP, les variables ne sont remplacées par leur valeur quand dans les chaînes entre doubles quotes " :
"mysql:host = $server; dbname=test"
et non pas
'mysql:host = $server; dbname=test'


Entre simples apostrophes, $server, c'est la chaîne de caractères $-s-e-r-v-e-r, pas une variable.
0
akimacker Messages postés 6 Date d'inscription lundi 3 septembre 2018 Statut Membre Dernière intervention 10 octobre 2018
3 sept. 2018 à 19:48
Merci le père!
0
Utilisateur anonyme > akimacker Messages postés 6 Date d'inscription lundi 3 septembre 2018 Statut Membre Dernière intervention 10 octobre 2018
3 sept. 2018 à 20:08
De rien :-)
0