首页 >后端开发 >php教程 >为什么我收到'调用未定义方法 mysqli_stmt::get_result()”错误?

为什么我收到'调用未定义方法 mysqli_stmt::get_result()”错误?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-26 10:42:15611浏览

Why am I getting a

“mysqli_stmt::get_result()” 方法调用未定义问题

在尝试使用“get_result()”方法从“mysqli_stmt”对象中获取查询结果时,出现了“调用未定义方法 mysqli_stmt::get_result()”错误。

问题原因:

错误表明“get_result()”方法对于“mysqli_stmt”对象不可用。这可能是由于缺少“mysqlnd”驱动程序造成的。

解决方案:

  1. 安装 mysqlnd 驱动程序:

    此驱动程序对于使用“get_result()”方法至关重要。请确保在您的 Web 空间上已安装它。

  2. 使用 bind_result() 和 fetch():

    如果您无法安装“mysqlnd”驱动程序,则可以使用“bind_result()”和“fetch()”方法来获取查询结果。这些方法不受“mysqlnd”驱动程序的影响。示例代码如下:

$stmt->bind_result($emailVerified, $blocked);
$stmt->fetch();
  1. 检查 mysqli_stmt->execute() 的返回值:

    确保“mysqli_stmt->execute()”方法已成功执行。如果它返回“false”,则不会为“stmt”对象设置任何结果。

示例:

以下是已解决该问题的修改后的代码:

include 'conn.php';
$conn = new Connection();
$query = 'SELECT EmailVerified, Blocked FROM users WHERE Email = ? AND SLA = ? AND `Password` = ?';
$stmt = $conn->mysqli->prepare($query);
$stmt->bind_param('sss', $_POST['EmailID'], $_POST['SLA'], $_POST['Password']);

if ($stmt->execute()) {
    $stmt->bind_result($emailVerified, $blocked);
    $stmt->fetch();
    // Use $emailVerified and $blocked here...
} else {
    echo "Error executing statement: " . $stmt->error;
}

以上是为什么我收到'调用未定义方法 mysqli_stmt::get_result()”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

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