未捕获的错误:调用未定义的方法mysqli_stmt :: get_result()in

问题描述 投票:0回答:1

我是PHP新手。我有一个API,其中包含大部分功能,如下所示

function getUserByEmail($conn,$email)
    {
        $user = $conn->prepare("SELECT * FROM table_users WHERE email = ?");
        $user->bind_param("s", $email);
        $user->execute();
        $result = $user->get_result();
        $data = $result->fetch_assoc();
        $user->close();
        return $data;
    }

它的工作正常我的主机与namecheap启用nd_mysqli。但在我的hostgator托管中,它给出了错误。

未捕获的错误:调用未定义的方法mysqli_stmt :: get_result()in

我无法在Hostgator中启用该扩展,因此我想用here或其他方式写的答案替换它。

但我不知道如何做到这一点。

php
1个回答
0
投票

bind result

因此,如果MySQL本机驱动程序(mysqlnd)驱动程序不可用,因此使用bind_result和fetch而不是get_result,代码将变为:

if ($stmt = $mysqli->prepare("SELECT col1,col2 FROM table_users WHERE email = ?")) {
    $stmt->bind_param("s", $email);
    $stmt->execute();

    /* bind variables to prepared statement */
    $stmt->bind_result($col1, $col2);

    /* fetch values */
    while ($stmt->fetch()) {
        printf("%s %s\n", $col1, $col2);
    }

    /* close statement */
    $stmt->close();
 }
© www.soinside.com 2019 - 2024. All rights reserved.