Mammouth du PHP |
19672 Messages
03 mai 2005, 14:05
Ce que j'ai fait, c'est une concaténation propre entre une chaine de caractère qui est ici du langage SQL et des variables PHP:
Explication de texte: L'opérateur de concaténation en PHP est le point "."
Dans la mesure où on utilise des guillemets (et non des apostrohpes) pour encadrer une chaine, on "peut" en pratique s'abstenir de séparer les variables PHP qui seront interprétées et non lues. Si on utilisait des apostrophes :
L'affichage du résultat directement à l'écran nous montrerait Tel quelle contenu en lisant la variable, pas en l'interprétant.
Au lieu de :
Ce qu'on vous a enseigné montre autre chose: l'encadrement de variables dans une commande en SQL avec des quillemets :
On procède comme ceci à cause de l'apostrophe contenu dans le nom de la ville qui ne doit pas rentrer en conflit avec l'encadrement de la chaine complete. Mais comme PHP utilise les mêmes guillemets, pour éviter des conflits, on vous a montré qu'il fallait les échapper.
Ma correction : On encadre une chaine traitée par PHP avec des guillemets et on encadre les variables SQL avec des apostrophes.
S'il s'agit d'une variable PHP qui doit servir de référence, on procède à une concaténation de chaine comme illustré plus haut. Tu me diras peut-être : oui, mais en utilisant des apostrophes, si mon nom de ville est "Ville d'Avray", l'apostrophe va entrer en conflit avec les apostrophes SQL. Et là, on doit utiliser pour traiter en PHP la variable une fonction PHP : addslashes() qui va échapper les apostrophes dans la chaine.
Si tu fais afficher à l'écran la requête obtenue, tu devrais pouvoir la copier et l'exécuter directement via PhpMyAdmin sans problème. Et S'il y a une erreur, il faut savoir quel type d'erreur et si ce que je t'ai mis ne fonctionne pas, je ne peux pas deviner pourquoi sans connaître les messages d'erreur générés .
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse 