IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

créer une table dont le nom sera transmis via un post


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 87
    Points : 70
    Points
    70
    Par défaut créer une table dont le nom sera transmis via un post
    Salut,

    voila je voudrai créer une table dont le nom sera transmis via un post. mai avec ce code ça ne marche pas. quelqu'un pourrait-il le corriger ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    $req=$bdd->prepare('CREATE TABLE :rfid_1(
    					N SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
    					RFID VARCHAR(100) NOT NULL,
    					Chambre VARCHAR(100) NOT NULL,
    					Nom VARCHAR(100) NOT NULL,
    					Prenom VARCHAR(100) NOT NULL,
    					Sexe VARCHAR(100) NOT NULL,
    					Age VARCHAR(100) NOT NULL,
    					Taille FLOAT NOT NULL,
    					Poids FLOAT NOT NULL,
    					Alergies text NOT NULL,
    					Antecedents text NOT NULL,
    					Tension FLOAT NOT NULL,
    					Temperature FLOAT NOT NULL,
    					Rythme FLOAT NOT NULL,
    					Glycemie FLOAT NOT NULL,
    					photo LONGBLOB,
    					PRIMARY KEY (N))ENGINE=INNODB;');
    $req->execute(array('rfid_1'=>$_POST['rfid_p']));
    $req->closeCursor();
    REMERCIEMENTS...

  2. #2
    Membre éclairé Avatar de Tillo
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 494
    Points : 683
    Points
    683
    Par défaut
    Bonjour,

    J'ai mis un try/catch autour du code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    try 
    {
    $req=$bdd->prepare('CREATE TABLE :rfid_1(
    					N SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
    					RFID VARCHAR(100) NOT NULL,
    					Chambre VARCHAR(100) NOT NULL,
    					Nom VARCHAR(100) NOT NULL,
    					Prenom VARCHAR(100) NOT NULL,
    					Sexe VARCHAR(100) NOT NULL,
    					Age VARCHAR(100) NOT NULL,
    					Taille FLOAT NOT NULL,
    					Poids FLOAT NOT NULL,
    					Alergies text NOT NULL,
    					Antecedents text NOT NULL,
    					Tension FLOAT NOT NULL,
    					Temperature FLOAT NOT NULL,
    					Rythme FLOAT NOT NULL,
    					Glycemie FLOAT NOT NULL,
    					photo LONGBLOB,
    					PRIMARY KEY (N))ENGINE=INNODB;');
    $req->execute(array('rfid_1'=>$_POST['rfid_p']));
    $req->closeCursor();
    } 
    catch (Exception $e) 
    {
    echo 'Erreur : ',  $e->getMessage(), "\n";
    }
    Puis, j'ai testé en proposant tabletest1 comme nom de table, visiblement, il y a une erreur dans le code.

    Erreur : 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 ''tabletest1'( N SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, RFID VARC' at line 1

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 87
    Points : 70
    Points
    70
    Par défaut
    Merci pour t'a réponse, justement c'est cette erreur que j'arrive pas à résoudre, si moi je met le nom ça marche, mais si je veut faire en sorte que le nom vienne du post ça affiche cette erreur.

  4. #4
    Membre éclairé Avatar de Tillo
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 494
    Points : 683
    Points
    683
    Par défaut
    J'ai réussi ! Vive moi !
    Je plaisante bien sûr ...

    Le problème n'est pas vraiment résolu, il est plutôt contourné.
    Chez moi ça marche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    try 
    {
    $sql = 'CREATE TABLE '.$_POST['rfid_p'].'(
    					N SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
    					RFID VARCHAR(100) NOT NULL,
    					Chambre VARCHAR(100) NOT NULL,
    					Nom VARCHAR(100) NOT NULL,
    					Prenom VARCHAR(100) NOT NULL,
    					Sexe VARCHAR(100) NOT NULL,
    					Age VARCHAR(100) NOT NULL,
    					Taille FLOAT NOT NULL,
    					Poids FLOAT NOT NULL,
    					Alergies text NOT NULL,
    					Antecedents text NOT NULL,
    					Tension FLOAT NOT NULL,
    					Temperature FLOAT NOT NULL,
    					Rythme FLOAT NOT NULL,
    					Glycemie FLOAT NOT NULL,
    					photo LONGBLOB,
    					PRIMARY KEY (N)) ENGINE=INNODB;';	
     
     
    $req=$pdo->prepare($sql);
     
    $req->execute();
    $req->closeCursor();
    } 
    catch (Exception $e) 
    {
    echo 'Erreur : ',  $e->getMessage(), "\n";
    }
    ?>
    Je reste dispo si tu as des questions sur le code.
    A ta place, je mettrais un IF EXISTS dans la requête car si le nom de table qui est transmis par le POST existe déjà, il y a un message d'erreur.

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 87
    Points : 70
    Points
    70
    Par défaut


    ça marche MERCI MERCI aussi pour le if exist

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    "CREATE TABLE IF NOT EXISTS ..... "


    Et.... question sécurité, ça raconte quoi !?

  7. #7
    Membre éclairé Avatar de Tillo
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 494
    Points : 683
    Points
    683
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Et.... question sécurité, ça raconte quoi !?
    J'y ai pensé, mais la question concernait juste la requête de création d'une table.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer une table dont les noms de colonnes sont des paramètres
    Par Mythrandil dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 08/09/2007, 15h08
  2. Select d'une table dont le nom est dynamique
    Par newfsch dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/07/2007, 12h09
  3. Réponses: 6
    Dernier message: 08/02/2007, 14h41
  4. Réponses: 4
    Dernier message: 27/12/2006, 21h53
  5. Accéder à une table dont le nom est dans une table
    Par claralavraie dans le forum Oracle
    Réponses: 7
    Dernier message: 26/12/2006, 15h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo