首页 > 后端开发 > php教程 > 为什么 `mysqli_stmt::bind_result()` 在 PHP 登录表单中抛出'绑定不匹配”错误?

为什么 `mysqli_stmt::bind_result()` 在 PHP 登录表单中抛出'绑定不匹配”错误?

Barbara Streisand
发布: 2024-12-24 03:49:27
原创
419 人浏览过

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

Mysqli_stmt::bind_result() 错误:绑定不匹配

当尝试使用准备好的语句实现 PHP 登录表单时,用户可能会遇到以下错误:

mysqli_stmt::bind_result(): Number of bind variables doesn't match number of fields in prepared statement
登录后复制

此错误表示之间存在差异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();
登录后复制

根本原因:

SELECT 语句中的错误语法是错误的根本原因。正确的语法应该是:

SELECT username, password FROM users WHERE username = ?
登录后复制

解决方案:

可以通过用逗号而不是“AND”分​​隔 SELECT 语句中的字段来解决该问题。 ”下面提供了正确的代码:

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

通过确保 SELECT 语句中的语法正确并观察绑定变量的数量与准备好的语句中的字段数量匹配,mysqli_stmt::bind_result() 错误是可以预防的。

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

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