2009-11-17 3 views
0
$query = "UPDATE kids_entry SET entries=? WHERE parentsemail=?"; 
$stmt1 = mysqli_prepare($connection, $query); 
mysqli_stmt_bind_param($stmt1, 'is',$entries,$parentsemail); 
mysqli_execute($stmt1); 
if(mysqli_stmt_affected_rows($stmt1) != 1) 
    die("issueasdass"); 
mysqli_stmt_close($stmt1); 

Le code ci-dessus fonctionne pour moi sur une autre page mais je n'arrive pas à l'obtenir ici. Sur l'autre page, l'ensemble à mettre à jour est codé en dur et n'est pas dynamique, ce qui pourrait expliquer pourquoi cela ne fonctionne pas pour moi. Quelqu'un peut-il me dire ce que je fais mal? MerciProblèmes avec ma mise à jour d'instruction préparée

+0

Quel est le type d'entrées $? Le 'est' que vous passez dans l'instruction bind implique que vos params seront un entier et une chaîne. Si #entries n'est pas une chaîne, cela pourrait causer certains de vos problèmes. – tschaible

+0

entrées est un nombre entier et parentsemail est une chaîne – Drew

Répondre

0

Le problème semble s'être résolu. Rien n'a changé mais maintenant ça marche!

0

Est-il possible que les entrées aient la même valeur que ce qui est déjà dans la base de données? Je ne pense pas *_affected_rows renvoie 1 si rien ne change. Est-il possible qu'il y ait plus d'une entrée pour 'parentsemail'? Alors peut-être mysqli_stmt_affected_rows retourne quelque chose comme 2? Au lieu de vérifier 1, peut-être nous faire savoir ce que mysql_stmt_affected_rows est de retour. Par exemple, à partir de la documentation:

un nombre entier supérieur à zéro indique le nombre de lignes affectées ou récupérées. Zéro indique qu'aucun enregistrements mis à jour pour une instruction UPDATE/DELETE , aucune ligne correspond à la clause WHERE dans la requête ou qu'aucune requête n'a encore été exécutée . -1 indique que la requête a renvoyé une erreur.

Questions connexes