[Mysqli] Afficher une requête préparée ?
Bonjour,
J'ai actuellement une requête préparée de recherche par titre et je l'améliore pour qu'elle puisse prendre plusieurs mots à la fois. Au final PHP me génère une variable qui contient mon like en string genre :
Code:
AND a.titre LIKE '%mot1%mot2%motx%'
Ensuite j'envoie la variable en question à ma fonction SQL qui la prend en paramètre. Dans ma requête je bind ma variable là où est censé être le LIKE...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| $stmt = mysqli_prepare($conn, "
SELECT a.id, a.titre, a.texte, r.ss_titre, r.lieu_id, d.date1, d.date2, a.rubrique
FROM ARTICLES a
LEFT JOIN RENSEIGNEMENTS r ON a.id = r.article_id
LEFT JOIN DATES d ON r.date_id = d.id
WHERE a.edition IN ('NANCY', 'NANCY-METZ', 'NANCY-METZ-STRASB', 'NANCY-METZ-STR-DIJON', 'TTES EDITIONS')
AND (
d.date1 = ( SELECT MIN( d1.date1 )
FROM ARTICLES a1
LEFT JOIN RENSEIGNEMENTS r1 ON a1.id = r1.article_id
LEFT JOIN DATES d1 ON r1.date_id = d1.id
WHERE a1.titre = a.titre )
OR r.article_id IS NULL
)
?
GROUP BY a.titre
ORDER BY COALESCE(d.date1, '2050-12-31')
");
mysqli_stmt_bind_param($stmt, "s", $like); |
Le problème c'est que la requête foire, et j'ai du mal à trouver d'où ça vient sans afficher la requête envoyée. Donc ma question est : Est-ce que c'est possible ou "I'm doing it wrong" ?
Merci