par
nuphius » 17 sept. 2006, 11:10
bonjour
voila je suis en train d'apprendre à programmer en PHP, et je suis en train de faire un programme qui permet aux visiteurs de s'inscrire sur mon site. Une partie du programme regarde dans ma base de donnée si le mail saisi n'existe pas déjà. Le problème est la. Dans mon bouquin ils disent qu'utiliser un requête préparé pour l'envoi SQL et plus performant que mysqli_query. Mais voila sans que j'arrive a comprendre pourquoi la requête préparé ne retourne aucune erreur lors de son exécution mais n'a pas l'air de fonctionner car elle me retourne un valeur fausse alors que quand j'utilise mysqli_query tout fonctionne parfaitement et retourne la bonne valeur. voici les deux codes différent:
Fonction préparé qui me retourne constament 0 quand j'appel mysqli_stmt_num_rows (alors qu'il doit retourner 1).
function verif($mail) {
include_once('Membres/connect_sql.php5');
$mail_sql=mysqli_real_escape_string($link,$mail);
$sql="SELECT * FROM identification WHERE mail=?";
$rp=mysqli_prepare($link,$sql);
mysqli_stmt_bind_param($rp, "s", $mail_sql);
mysqli_stmt_execute($rp);
if (mysqli_stmt_num_rows($rp)>0) {
return FALSE; }
else {
return TRUE; }
mysqli_stmt_close($rp);
}
Fonction mysqli_query qui fonctionne parfaitement bien ( retourne 1 )
function verif($mail) {
include_once('Membres/connect_sql.php5');
$mail_sql=mysqli_real_escape_string($link,$mail);
$sql="SELECT * FROM identification WHERE mail='$mail_sql'";
$rp=mysqli_query($link,$sql);
if (mysqli_num_rows($rp)>0) {
return FALSE; }
else {
return TRUE; }
}
Donc voila si quelqu'un trouve, merci de m'expliquer.
cordialement
mikael