Dans mysql je le code ci-dessous:comment changer le code ci-dessous de MySQL à Mysqli
$row = mysql_fetch_assoc($query);
$dbactive = $row['active'];
if ($dbactive == 1){
...
}...
Mais je dois utiliser mysqli dans mon projet. J'ai donc essayé de le changer ci-dessous mais je ne comprends pas très bien. Quelqu'un peut-il m'aider à corriger l'instruction ci-dessous dans mysqli afin qu'elle corresponde à la déclaration de mysql ci-dessus?
MISE À JOUR:
Ma tentative mysqli:
// don't use $mysqli->prepare here
$query = "SELECT TeacherForename, TeacherSurname, TeacherUsername, TeacherPassword, Active FROM Teacher WHERE TeacherUsername = ? AND TeacherPassword = ? LIMIT 1";
// prepare query
$stmt=$mysqli->prepare($query);
// You only need to call bind_param once
$stmt->bind_param("ss",$teacherusername,$teacherpassword);
// execute query
$stmt->execute();
// get result and assign variables (prefix with db)
$stmt->bind_result($dbTeacherForename,$dbTeacherSurname,$dbTeacherUsername,$dbTeacherPassword, $dbActive);
while($stmt->fetch()) {
if ($teacherusername == $dbTeacherUsername && $teacherpassword == $dbTeacherPassword) {
if ($dbActive == 1){
$loggedIn = true;
}
}
}
Je code mis à jour, je ne l'ai pas testé, mais pensez-vous que le code ci-dessus est correct ou causera-t-il toujours un problème? – user1394925
@ user1517628 Vous n'avez pas besoin de la seconde 'bind_result()'. Vous liez déjà le résultat à '$ dbactive' dans le premier appel avec plusieurs variables passées. – Matt
Désolé le deuxième résultat de lier était moi étant négligent et en oubliant de le retirer du code avant la mise à jour. Je vais le tester et voir ce qui se passe :) – user1394925