Maison >développement back-end >tutoriel php >Pourquoi est-ce que je reçois une erreur « Appel à la méthode non définie mysqli_stmt::get_result() » ?
La méthode "mysqli_stmt::get_result()" appelle un problème non défini
En essayant d'utiliser la méthode "get_result()" de "mysqli_stmt" Lors de l'obtention des résultats de la requête dans l'objet, "Appeler la méthode non définie" apparaît. mysqli_stmt::get_result()" erreur.
Cause du problème :
L'erreur indique que la méthode "get_result()" n'est pas disponible pour l'objet "mysqli_stmt". Cela peut être dû à l'absence du pilote "mysqlnd".
Solution :
Installer le pilote mysqlnd :
Ce pilote est utile pour utiliser " get_result ()" est cruciale. Veuillez vous assurer qu'il est installé sur votre espace Web.
Utilisez bind_result() et fetch() :
Si vous ne parvenez pas à installer le pilote "mysqlnd", vous pouvez utiliser "bind_result() » et « fetch() » pour obtenir les résultats de la requête. Ces méthodes ne sont pas affectées par le pilote "mysqlnd". L'exemple de code est le suivant :
$stmt->bind_result($emailVerified, $blocked); $stmt->fetch();
Vérifiez mysqli_stmt->execute() Valeur de retour :
Assurez-vous que la méthode "mysqli_stmt->execute()" a été exécutée avec succès. S'il renvoie "false", aucun résultat ne sera défini pour l'objet "stmt".
Exemple :
Voici le code modifié qui a résolu le problème :
include 'conn.php'; $conn = new Connection(); $query = 'SELECT EmailVerified, Blocked FROM users WHERE Email = ? AND SLA = ? AND `Password` = ?'; $stmt = $conn->mysqli->prepare($query); $stmt->bind_param('sss', $_POST['EmailID'], $_POST['SLA'], $_POST['Password']); if ($stmt->execute()) { $stmt->bind_result($emailVerified, $blocked); $stmt->fetch(); // Use $emailVerified and $blocked here... } else { echo "Error executing statement: " . $stmt->error; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!