首页 > 后端开发 > php教程 > 为什么 `mysqli_stmt::bind_result()` 会抛出'绑定变量不匹配”错误?

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

Mary-Kate Olsen
发布: 2024-12-11 13:09:11
原创
663 人浏览过

Why Does `mysqli_stmt::bind_result()` Throw a

mysqli_stmt::bind_result():绑定变量与准备好的语句字段不匹配

问题:

当尝试执行准备好的语句时mysqli_stmt,我遇到错误:“mysqli_stmt::bind_result():绑定变量的数量与准备好的语句中的字段数量不匹配。”为什么我会收到此错误?

代码示例:

$mysqli = new mysqli("localhost", "root", "", "security");

$stmt = $mysqli->prepare("SELECT username AND password FROM users WHERE username = ?");
$username = $_POST['name'];
$stmt->bind_param('s', $username);
$stmt->execute();
$stmt->bind_result($password, $username);
$stmt->fetch();
登录后复制

答案:

您遇到的错误当bind_result() 中指定的变量数与准备好的语句查询返回的列数不匹配时,会发生这种情况。在您的示例中,您尝试将两个变量绑定到仅返回一列的查询。

要解决此问题,应以正确的操作格式编写查询。选择多个字段的正确语法是用逗号分隔它们,而不是 AND:

$stmt = $mysqli->prepare("SELECT username, password FROM users WHERE username = ?");
登录后复制

纠正查询后,可以使用 bind_result() 方法将变量正确绑定到结果:

$stmt->bind_result($username, $password);
登录后复制

以上是为什么 `mysqli_stmt::bind_result()` 会抛出'绑定变量不匹配”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板