首页 > 后端开发 > php教程 > 为什么我的 MySQLi 准备语句抛出'绑定变量数量与字段数量不匹配”错误?

为什么我的 MySQLi 准备语句抛出'绑定变量数量与字段数量不匹配”错误?

Patricia Arquette
发布: 2024-12-15 21:30:26
原创
238 人浏览过

Why Does My MySQLi Prepared Statement Throw a

MySQLi 准备语句中的绑定变量不匹配

当尝试在 PHP 中使用准备语句实现登录表单时,一些开发人员遇到了令人沮丧的问题错误:“mysqli_stmt::bind_result():绑定变量的数量与准备好的字段数量不匹配语句。”

当 SQL 查询和 bind_result() 函数选择并分配给变量的字段数量不匹配时,就会出现此错误。让我们根据提供的代码来看看如何解决这个问题。

在提供的代码中:

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

问题出在 SQL 查询上。选择多个字段时,使用“AND”关键字代替逗号。选择多个字段的正确语法是用逗号分隔它们:

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

此外,bind_result() 函数应与所选字段的数量匹配。在这种情况下,选择了两个字段,因此bind_result()函数应该有两个变量:

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

通过更正选择语法并将bind_result()函数与所选字段的数量对齐,问题不匹配的绑定变量将得到解决,从而使登录表单能够正常运行。

以上是为什么我的 MySQLi 准备语句抛出'绑定变量数量与字段数量不匹配”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

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