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

 MySQL Discussion :

PHPMYADMIN - Problème variabilisassions de la Requête SQL


Sujet :

MySQL

  1. #1
    Membre confirmé
    Avatar de dexter74
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 115
    Billets dans le blog
    3
    Par défaut PHPMYADMIN - Problème variabilisassions de la Requête SQL
    Bonjour,

    Je souhaiterai variabilisés ma requête SQL pour la rendre standard et donc simplifier la maintenance.



    Requête non variabilisé:
    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
    # Suppression de la BDD
    DROP DATABASE IF EXISTS SITE;
     
    # Suppression du compte de service SQL
    DROP USER IF EXISTS 'Website'@'localhost';
     
    # Creation de la BDD
    CREATE DATABASE IF NOT EXISTS SITE;
     
    # Creation du compte de service
    CREATE USER 'Website'@'localhost' IDENTIFIED BY 'mypassword';
     
    # Ajout des permissions
    GRANT ALL PRIVILEGES ON SITE.* TO 'Website'@'localhost';
     
    # Permettre l'authentification en mode passive (Indispensable)
    ALTER USER Website@localhost IDENTIFIED VIA mysql_native_password USING PASSWORD('mypassword');


    Tentative de variabilisassions de ma requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SET @BDD='test';
    SET @USERNAME='marc';
    SET @PASSWORD='admin';
    DROP USER IF EXISTS '@USERNAME'@'localhost';
    DROP DATABASE IF EXISTS @BDD;


    Code retour en erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Erreur
    Analyse statique : 2 erreurs trouvées lors de l'analyse.
     
    Une expression était attendue. (near "@BDD" at position 24)
    Jeton inattendu. (near "@BDD" at position 24)
     
    Requête SQL : Copier
    DROP DATABASE IF EXISTS @BDD;
    MySQL a répondu : Documentation
    #1064 - Erreur de syntaxe près de '@BDD' à la ligne 1

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 293
    Billets dans le blog
    17
    Par défaut
    Tu ne peux pas utiliser de variable de cette manière.

    En présumant que MariaDB a les mêmes contraintes que MySQL :

    User variables may be used in most contexts where expressions are permitted. This does not currently include contexts that explicitly require a literal value, such as in the LIMIT clause of a SELECT statement, or the IGNORE N LINES clause of a LOAD DATA statement.
    https://dev.mysql.com/doc/refman/8.0...variables.html



    Il faudrait préparer la requête :

    SET @user_name = 'Mathilde';
    SET @sql = CONCAT('DROP USER IF EXISTS ', QUOTE(@user_name), '@localhost');
    -- Ou en mode ANSI :
    -- SET @sql = 'DROP USER IF EXISTS ' || QUOTE(@user_name) || '@localhost';
    PREPARE drop_request FROM @sql;
    EXECUTE drop_request;
    DEALLOCATE PREPARE drop_request;
    https://dev.mysql.com/doc/refman/8.0...tatements.html

Discussions similaires

  1. [AC-2007] Sauvegarde d'une table avec une variable.
    Par Tifriis dans le forum IHM
    Réponses: 4
    Dernier message: 10/11/2010, 12h27
  2. [AC-2003] Mettre à jour une table avec une variable
    Par nawakbling dans le forum VBA Access
    Réponses: 1
    Dernier message: 02/04/2010, 11h33
  3. nom de table avec une variable
    Par zeloutre dans le forum Access
    Réponses: 6
    Dernier message: 06/03/2007, 13h39
  4. [SQL Server 2000] - Create table avec une variable
    Par Cape31 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/12/2006, 16h08
  5. Nommer une table avec une variable
    Par stephane9422 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/12/2005, 15h02

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