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

Requêtes MySQL Discussion :

Problème de requête préparée


Sujet :

Requêtes MySQL

  1. #1
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 126
    Points : 177
    Points
    177
    Par défaut Problème de requête préparée
    Bonjour à tous,

    J'ai un problème avec les requêtes préparées, plus simple est encore que je vous montre mon 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
    29
    30
    31
    <?php
    $sql_prepare = "PREPARE my_balise FROM
    		'SELECT files.ID as \'id_image\', t.ID, folios.cote
    		FROM transcriptions t
    		INNER JOIN Relations ON t.ID = Relations.idtabledest
    		AND Relations.tabledest = \'transcriptions\'
    		AND Relations.tablesource = \'folios\'
     
    		INNER JOIN folios ON folios.ID = Relations.idtablesource
     
    		INNER JOIN files ON files.idnotice = Relations.idtablesource
    		AND files.type = \'output\'
    		AND files.mimetype = \'image/jpeg\'
    		AND files.tablesource = \'folios\'
     
    		WHERE t.transcription_text LIKE ? ORDER BY folios.cote'  ";
     
    $db->execute($sql_prepare); //a priori là ça passe
     
    foreach($finded as $balise_unique)
    {
     
    $sql = "
    SET @mavariable = " . $db->quote_smart($balise_unique) . "
     
    EXECUTE my_balise USING @mavariable
    ";
     
    $result = $db->execute($sql); //évidemment là ça plante :)
     
    }
    Précisions :
    La requête que je prépare, fonctionne évidemment en mode "normal" (non préparé).
    La fonction quote_smart() applique un mysql_real_escape()
    La fonction execute() fait appel à mysql_query()

    L'erreur que j'obtiens est la suivante :
    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 'EXECUTE my_balise USING @mavariable' at line 3
    Pour info voici les requêtes générées par mon script :

    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
    PREPARE my_balise FROM
    		'SELECT files.ID as \'id_image\', t.ID, folios.cote
    		FROM transcriptions t
    		INNER JOIN Relations ON t.ID = Relations.idtabledest
    		AND Relations.tabledest = \'transcriptions\'
    		AND Relations.tablesource = \'folios\'
     
    		INNER JOIN folios ON folios.ID = Relations.idtablesource
     
    		INNER JOIN files ON files.idnotice = Relations.idtablesource
    		AND files.type = \'output\'
    		AND files.mimetype = \'image/jpeg\'
    		AND files.tablesource = \'folios\'
     
    		WHERE t.transcription_text LIKE ? ORDER BY folios.cote'
    Et l'appel à la requête préparée (c'est juste un exemple) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET @mavariable = '<span style=\"font-size: 12pt; font-family: \'Times New Roman\'\">' EXECUTE my_balise USING @mavariable
    Si quelqu'un voit l'erreur, je suis preneur
    Merci d'avance.

  2. #2
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 73

    Informations forums :
    Inscription : Octobre 2006
    Messages : 124
    Points : 126
    Points
    126
    Par défaut
    Bonjour,
    est ce que ce ne serait pas plutôt
    execute $sql_prepare
    plutôt que
    Cordialement
    MS

  3. #3
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut
    Il manque un ; entre ton SET et ton EXECUTE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $sql = "
    SET @mavariable = " . $db->quote_smart($balise_unique) . " ;
     
    EXECUTE my_balise USING @mavariable
    ";
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  4. #4
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut
    Citation Envoyé par MarcS Voir le message
    Bonjour,
    est ce que ce ne serait pas plutôt
    Pas du tout. C'est une variable SQL et non une variable PHP.
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/02/2015, 10h15
  2. [MySQL] Problème de requête préparée avec PDO
    Par fab56 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 16/01/2013, 22h06
  3. [Débutant] Problème requête préparée avec connections ODBC
    Par misterlagaffe dans le forum C#
    Réponses: 5
    Dernier message: 21/02/2012, 10h37
  4. [PDO] Problème de requête préparée (à n'y rien comprendre?)
    Par waldo2188 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 20/03/2007, 21h53
  5. Problème dans requête avec count()
    Par BadFox dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/07/2003, 18h02

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