首页  >  文章  >  后端开发  >  为什么我在 INSERT 查询中收到“绑定变量数量与字段数量不匹配”错误?

为什么我在 INSERT 查询中收到“绑定变量数量与字段数量不匹配”错误?

Susan Sarandon
Susan Sarandon原创
2024-10-28 09:41:29966浏览

Why Am I Getting a

INSERT 查询引发问题:绑定变量的数量与准备好的语句不兼容

在您的 PHP 代码中,错误消息指示之间不匹配准备好的语句中的绑定变量和字段的数量。具体来说,警告内容为:

“警告:mysqli_stmt::bind_result():绑定变量的数量与准备好的语句中的字段数量不匹配”

此错误发生在以下代码中:

if($stmt = $conn -> prepare("INSERT INTO login(user, pass) VALUES(?, ?)")) {

  /* Bind parameters s - string, b - blob, i - int, etc */
  $stmt -> bind_param("ss", $user, $pw);

  /* Execute it */
  $stmt -> execute();

  /* Bind results */
  $stmt -> bind_result($user, $pw);

  /* Close statement */
  $stmt -> close();
  $userId = $conn->insert_id;
}

理解问题

错误源于您尝试将结果变量($user 和 $pw)绑定到不返回任何内容的语句结果。在这种情况下,INSERT 查询没有 SELECT 子句或返回值的存储过程。因此,绑定结果变量是不必要的。

解决问题

要解决问题,只需删除绑定结果变量的行:

$stmt -> bind_result($user, $pw);

通过删除这一行,您可以消除绑定变量的数量(0)和准备好的语句中的字段数量(也是0)之间的不匹配。这应该可以解决错误并允许您的代码成功执行。

以上是为什么我在 INSERT 查询中收到“绑定变量数量与字段数量不匹配”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

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