PHP mysqli_stmt::bind_result() 中的绑定变量不匹配
尝试使用带有预准备语句的 PHP 登录表单登录时,你遇到了错误:
mysqli_stmt::bind_result(): Number of bind variables doesn't match number of fields in prepared statement
诊断:
当bind_param()中指定的绑定变量的数量与准备好的返回的字段数量不匹配时,会发生此错误
解决方案:
中你的代码:
$stmt->prepare("SELECT username AND password FROM users WHERE username = ?");
准备好的语句检索两个字段,用户名和密码,但后续的bind_param()和bind_result()调用仅指定一个绑定变量,$username。
到解决这个问题,你需要正确指定多个绑定变量和字段:
$mysqli->prepare("SELECT username, password FROM users WHERE username = ?"); $username = $_POST['name']; $stmt->bind_param('s', $username); $stmt->execute(); $stmt->bind_result($username, $password);
以上是为什么 `mysqli_stmt::bind_result()` 会抛出绑定变量不匹配错误?的详细内容。更多信息请关注PHP中文网其他相关文章!