加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

PHP致命错误:调用未定义的函数mysqli_stmt_get_result()

发布时间:2021-07-06 05:21:00 所属栏目:大数据 来源: https://www.jb51.cc
导读:我一直收到错误PHP致命错误:调用未定义的函数MysqLi_stmt_get_result().我正在使用PHP 5.6版并在我的托管服务提供商c面板中启用了扩展MysqLind但我无法弄清楚为什么我仍然会收到此错误.我已经研究并发现每次我需要启用MysqLi nd才能使用MysqLi_stmt_get_res

我一直收到错误PHP致命错误:调用未定义的函数MysqLi_stmt_get_result().我正在使用PHP 5.6版并在我的托管服务提供商c面板中启用了扩展MysqLind但我无法弄清楚为什么我仍然会收到此错误.我已经研究并发现每次我需要启用MysqLi nd才能使用MysqLi_stmt_get_result.任何人都可以协助/教导我做错了什么.谢谢.

SIGNUP.PHP:

<?PHP
    session_start();
    include '../dbh.PHP';

    $respond = array(
        'status' => true,
        'message' => 'There was an error',
        'redirect',
        'errors'
    );

    if (isset($_POST['submit'])) {

        $first = $_POST['first'];
        $last  = $_POST['last'];
        $email = $_POST['email'];
        $pwd   = $_POST['pwd'];

        $errorEmpty = false;
        $errorEmail = false;


        if (empty($first) || empty($last) || empty($email) || empty($pwd)) {

            $respond['errors'][]   = "Please fill out all fields!";
            $respond['errorEmpty'] = true;

        } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
            $respond['errors'][]   = "Please enter a valid email address!";
            $respond['errorEmail'] = true;

        } else {
            $sql  = "SELECT email FROM user WHERE email= ? ";
            $stmt = MysqLi_prepare($conn, $sql);
            MysqLi_stmt_bind_param($stmt, 's', $email);
            MysqLi_stmt_execute($stmt);
            $result   = MysqLi_stmt_get_result($stmt);  //This is where I getting my error
            $num_rows = MysqLi_num_rows($result);
            if ($num_rows > 0) {
                $respond['errors'][]   = "That email address already exists!";
                $respond['errorEmail'] = true;
            }

            else {
                $encryptpwd = password_hash($pwd, PASSWORD_DEFAULT);
                $sql        = "INSERT INTO user (first, last, email, pwd) VALUES (?,?,?,?)";
                $stmt       = MysqLi_prepare($conn, $sql);
                MysqLi_stmt_bind_param($stmt, 'ssss', $first, $last, $email, $password_hash);

                if (MysqLi_stmt_execute($stmt)) {

                    $userID = MysqLi_insert_id($conn);
                    $status = 1;
                    $sql2   = "INSERT INTO profileImg (email, status) VALUES(?,?)";
                    $stmt2  = MysqLi_prepare($conn, $sql2);
                    MysqLi_stmt_bind_param($stmt2, 'si', $email);
                    MysqLi_stmt_execute($stmt);

                    $_SESSION['id'] = $userID;

                    $respond['redirect'] = "../profile.PHP?id=$userID";
                }
            }
        }
    }
    echo json_encode($respond);
    ?>

解决方法:

你有正确安装的MysqLnd驱动程序吗?根据Manual的评论:

If you don’t have MysqLnd installed/loaded whatever, you will get an
undefined reference when trying to call “MysqLi_stmt_get_result()”.

此外,还有关于此问题here和here的讨论.

最后,这是一个forum讨论有关使用cpanel驱动程序的信息,您可能会发现它很有用.

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读