Bonjour,

j'ai écrit le code suivant pour créer une base de données :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
                   try {
         $oPdo = new PDO('mysql:host=localhost', 'root', '', 
         array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)
        );
 
        $sRequete = "CREATE DATABASE :sBaseName DEFAULT CHARACTER SET utf8";
 
        $oPrepared = $oPdo->prepare($sRequete);
                               echo $oPrepared->queryString; // afficher requête
                               $oPrepared->execute(array("sBaseName" => "test"));
                  }
                  catch(Exception $e) {
                    throw new creationbasededonneesException($e->getMessage());
                  }
J'obtiens le message d'erreur :

CREATE DATABASE ':sBaseName' DEFAULT CHARACTER SET utf8Erreur : SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '':sBaseName' DEFAULT CHARACTER SET utf8' at line 1
A noter que si j'enlève la variable "sBaseName" de la requête préparée et que je mets directement un nom de base (par exemple : "toto"), la base est bien créée.

Voyez-vous d'où le problème peut venir ?

Merci.