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

时间:2019-03-27 03:17:40

标签: php

我是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()

我无法在Hostgator中启用该扩展名,因此我希望将其替换为here或其他方式的答案。

但是我不知道该怎么做。

1 个答案:

答案 0 :(得分: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();
 }