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