par
zeus » 05 mai 2008, 10:11
La solution la plus pérenne est d'utiliser la fonction PHP mysql_escape_string() avant de transmettre un paramètre à une requête.
De plus, il faut prendre quelques bonnes habitudes :
- passer par une variable et ne pas mettre la requête directement dans mysql_query()
- utiliser sprintf() plutôt que la concaténation
A partir de ton code, j'écrirais :
$str_requete = sprintf("SELECT
num_pers, excep
FROM
pers
WHERE
prenom_pers = '%s'
AND nom_pers = '%s'",
mysql_escape_string($pre),
mysql_escape_string($nom));
$o_result = mysql_query($str_requete);
La solution la plus pérenne est d'utiliser la fonction PHP mysql_escape_string() avant de transmettre un paramètre à une requête.
De plus, il faut prendre quelques bonnes habitudes :
[list][*]passer par une variable et ne pas mettre la requête directement dans mysql_query()
[*]utiliser sprintf() plutôt que la concaténation[/list]
A partir de ton code, j'écrirais :
[php]$str_requete = sprintf("SELECT
num_pers, excep
FROM
pers
WHERE
prenom_pers = '%s'
AND nom_pers = '%s'",
mysql_escape_string($pre),
mysql_escape_string($nom));
$o_result = mysql_query($str_requete);[/php]