当前位置: 首页 > 面试题库 >

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

丁良骏
2023-03-14
问题内容

我不断收到错误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驱动程序?根据手册中的评论:

如果您没有安装或加载mysqlnd,则在尝试调用“ mysqli_stmt_get_result()”时会得到未定义的引用。

另外,这里和这里都对此问题进行了讨论。

最后,这是一个论坛,讨论有关将驱动程序与cpanel一起使用的信息,您可能会觉得有用。



 类似资料:
  • 问题内容: Apache正在记录日志。经过一番谷歌搜索,似乎这个问题是由于没有最新版本的php导致的。奇怪的是,运行输出 清楚表明我的版本大于。 关于什么可能导致这种情况的任何想法,或者要采取哪些措施找出答案? 编辑:脚本回显phpversion的结果是 编辑:的结果也是 此外,在中,它列出了模块JSON和模块作者(Omar Kilani,Scott MacVicar)。 问题答案: 简短答案:

  • Apache正在记录。在谷歌搜索之后,这个问题似乎是由于没有最新版本的php造成的。奇怪的是,运行outputs 清楚地显示我的版本大于。 关于是什么导致了这种情况,或者应该采取什么措施来找出原因? 编辑:脚本回显phpversion的结果是 编辑:的结果也是 此外,在中,它列出了模块JSON和模块作者(Omar Kilani,Scott MacVicar)。

  • 问题内容: 当我尝试将旧的sql切换到sqli时,有人可以告诉我为什么这不起作用: 至: 它一直给我一个错误:“致命错误:调用未定义函数mysqli_result()” 问题答案: 不要使用这种代码。这是非常低效的。使用来代替: 一个SINGLE数据库操作,而不是您尝试执行的3个以上操作。

  • 问题内容: 我正在尝试连接到安装了PostgreSQL的数据库(远程服务器)。我的PHP代码正在尝试使用pg_connect()连接到数据库,但出现错误消息:-“致命错误:在第82行的/var/www/website/functions.php中调用未定义的函数pg_connect()”。 82行只是: (所有先前定义的变量) 我检查了很多论坛,建议的唯一解决方案是找到包含一行的php.ini文件

  • 问题内容: 我的代码是这样的: 当我运行通过Web套接字创建连接的php文件时,出现致命错误:调用if(($ this-> master = socket_create(AF_INET,SOCK_STREAM,SOL_TCP))<0)行中的未定义函数socket_create() 因此,我无法连接Web套接字,也无法从套接字获取响应消息,因为在运行客户端页面时,浏览器中显示的是套接字状态:3(关闭

  • 问题内容: 我正在尝试通过本地主机访问我的Gmail帐户。但是,我得到的答复: 致命错误:调用未定义的函数imap_open() 这是我的代码: 问题答案: 很简单,在您的PHP安装中未激活IMAP扩展。默认情况下未启用它。如果本地安装在Windows上运行XAMPP,则必须按照XAMPP FAQ 中的说明启用它: IMAP对PHP的支持在哪里? 默认情况下,由于一些家庭版本(例如Windows