Connexion php à mysql

Résolu
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

  1. 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
    1. 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
    2. Merci à vous de m'avoir répondu, ma question est résolue.
      0
  2. 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
    1. Merci le père!
      0
    2. @akimackerDe rien :-)
      0