Variable PHP dans requete MySQL

[Résolu]
Signaler
Messages postés
2
Date d'inscription
samedi 2 décembre 2000
Statut
Membre
Dernière intervention
5 mai 2009
-
Messages postés
2
Date d'inscription
samedi 2 décembre 2000
Statut
Membre
Dernière intervention
5 mai 2009
-
Bonjour à tous,

Je suis confronté à un petit problème dans le cas où j'essaye de créer une table avec une variable PHP dont la valeur contient un espace ou un caractère du type "-". Par contre, si je passe le nom directement dans la requête MySQL il n'y a pas de souci. Avec le code c'est plus simple :

        echo $data['Name'];  
        echo '
';

        // creation de la base
        $query = "CREATE TABLE ".$data['Name']."(
            `version` VARCHAR( 15 ) NOT NULL,
            `type` VARCHAR( 1 ) NOT NULL,
            PRIMARY KEY (`version`)
        ) ENGINE = MYISAM";
 
        if(!($result=mysql_query($query)))
        {       
            die(mysql_error());
        }

ce qui donne la sortie suivante :

Jet-Audio
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 '-Audio ( `version` VARCHAR( 15 ) NOT NULL, `type` VARCHAR( 1 )
NOT NULL,' at line 1

On voit bien qu'il y arrive pas avec le contenu de la variable vu qu'il affiche -Audio et non pas Jet-Audio. Bref et si je passe directement Jet-Audio dans la requête MySQL il n'y a pas de problème et tout fonctionne bien.

J'aimerais juste savoir comment corriger ce petit problème, si vous avez des idées je suis preneur.

Merci

2 réponses

Messages postés
106
Date d'inscription
vendredi 29 septembre 2006
Statut
Membre
Dernière intervention
6 mars 2012

ATTENTION! c'est très très exigent:
Pour reprendre ton exemple:

$query = "CREATE TABLE `".$data['Name']."`(
            `version` VARCHAR( 15 ) NOT NULL,
            `type` VARCHAR( 1 ) NOT NULL,
            PRIMARY KEY (`version`)
        ) ENGINE = MYISAM";
il faut ajouter des  ` (`Alt Gr + 7`) (c'est pas des ' (4) ni des " (3) mais des ` (Alt Gr + 7) ) quand tu spécifies le nom de ta table.
Il serait préférable de spécifier le nom du schéma avant le nom de la table mais c'est un détail.
Voila.
Messages postés
2
Date d'inscription
samedi 2 décembre 2000
Statut
Membre
Dernière intervention
5 mai 2009

Bonjour alexflex25,

Merci pour ta réponse rapide, ça marche impec maintenant.