Bonjour à tous,
J'ai un problème avec les requêtes préparées, plus simple est encore que je vous montre mon code :
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 :
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) :
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.
Partager