首页 >数据库 >mysql教程 >为什么 `mysqli_stmt::bind_result()` 会抛出绑定变量不匹配错误?

为什么 `mysqli_stmt::bind_result()` 会抛出绑定变量不匹配错误?

Patricia Arquette
Patricia Arquette原创
2024-12-10 21:46:14605浏览

Why Does `mysqli_stmt::bind_result()` Throw a Bind Variable Mismatch Error?

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn