Nouvelle syntaxe de requete PHP pour MySQL 5 : site en vrac

Silverscreen

Membre actif
17 Mars 2001
676
26
49
Cannes
Bon alors, voilà, il m'est arrivé dans ma lointaine jeunesse de commettre des sites web. N'ayant pas le bagage php, je me suis fait aider par des potes, aujourd'hui perdus de vue.

Seulement il y'a quelque temps, un copain catastrophé m'appelle : "tu sais le site que tu m'avais fait y'a 7 ans, ben il marche plus et j'ai un message bizarre…"

Après enquête, Amen avait crashé leurs serveurs et changé le site de plateforme dans la foulée… avec une version plus récente de MySQL. Et bizarrement, les requêtes php d'origine sont maintenant refusées. :eek:

Par exemple :
Bloc de code:
$query = "SELECT TypeName, modele, annee, circulation, kilometrage, commentaires, choc , price, type1, type2, type3 FROM annonce AS a, annonceImg AS b, annonceType AS c WHERE a.id = $id AND b.annonceId = $id AND a.typeId = c.Id";

me fait obtenir ce message : "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 'AND b.annonceId = AND a.typeId = c.Id' at line xx"

Ben zut alors !! :mouais:

C'est quoi le pâté avec la requête ? Et comment reformuler ? (j'espère juste que le problème est pas plus grave que ça)

Je précise que je suis resté toujours aussi noob en php (chacun son job) et que le site en question devrait servir à mon pote à revendre mon ancienne voiture : comment ça je suis intéressé ? :siffle:

---------- Nouveau message ajouté à 17h29 ---------- Le message précédent a été envoyé à 16h19 ----------

Bon, en fait, c'est la définition de la valeur $id dans la requête qui plait pas du tout…
 
À première vue je vois rien d'anormal. Tu peux essayer de remplacer le $id par '{$id}', t'es sûr que sa valeur est correcte, et que c'est pas en amont avec php que ça couillle ?
Tu peux aussi essayer de protéger les noms de colonnes avec des guillements, pour être sur que ce soient pas des mots clé réservés, genre a."id"
T'es sûr que le fichier a pas été modifié ? Genre qu'il peut pas y avoir des caractères invisibles ajoutés dedans par mégarde ?
 
Ton id, il vient de où exactement ? Tu as essayé de débugger en affichant cette fameuse valeur ?

S'il vient d'un formulaire en amont, le register_globals positionné à off fait en sorte que tu ne peux récupérer sa valeur comme ça 'en direct'. Il faut que tu passes par $_POST ou $_GET

Enfin, pour mieux comprendre, fais nous un couper/coller de ton script, ça ira mieux, là il n'y a pas assez de billes pour comprendre...