Php 致命错误:调用未定义的方法mysqli_stmt::get_result()

Php 致命错误:调用未定义的方法mysqli_stmt::get_result(),php,mysql,mysqli,Php,Mysql,Mysqli,我下面的php MYSQLi不工作,php版本5.9 $query = $conn->prepare("SELECT * FROM users WHERE token= ? LIMIT 1"); $query->bind_param('s',$cvalue); $query->execute(); $result = $query->get_result(); $row = $result->fetch_assoc(); 它

我下面的php MYSQLi不工作,php版本5.9

    $query = $conn->prepare("SELECT * FROM users WHERE token= ? LIMIT 1");
    $query->bind_param('s',$cvalue);
    $query->execute();
    $result = $query->get_result();
    $row = $result->fetch_assoc();
它给了我以下错误:

致命错误:调用未定义的方法mysqli\u stmt::get\u result


错误在哪里?我怎样才能修好它?谢谢

评论太长了

试试这个:

if($statement=$conn->prepare("SELECT * FROM users WHERE token= ? LIMIT 1")){

     $statement-> bind_param('s',$cvalue);

     // Execute
     $statement-> execute();

     // Bind results
     $statement-> bind_result($token);

     // Fetch value
     while ( $statement-> fetch() ) {
          echo $token . "<br>";
     }

     // Close statement
     $statement-> close();
}

// Close entire connection
$conn-> close();
现在,如果while$statement->fetch不能像您所希望的那样工作,请尝试用while$statement->fetch\u assoc替换它,就像您现在的方式一样

注:如果这对你不起作用,我将删除答案。 脚注:

正如Rocket Hazmat在一篇评论中所说的,我引述:它需要PHP5.3+和mysqlnd驱动程序

因此,请确保安装了驱动程序


如上所述,确保安装了mysqlnd

我刚刚花了一个小时来整理StackOverflow的所有答案,因为我错过了一个重要步骤,而我的脚本仍然失败——这一步骤是重新启动httpd守护进程

卸载php mysql 安装php mysqlnd

对于我来说,运行Centos 5.6和php55,这是一个

yum删除-y php55w mysql yum安装-y php55w mysqlnd

这一切都进行得很顺利,但我的PHP仍然失败,错误调用了未定义的方法mysqli\u stmt::get\u result

所以我重新启动了Apache

服务httpd重启


而且-嗒嗒-它工作得很好

如果您使用的是虚拟专用服务器

转到这个目录 /var/cpanel/easy/apache/rawopts

并创建一个新的文件,所有 [/var/cpanel/easy/apache/rawopts]cat>all\u php5

添加以下文本并关闭文件 -使用mysqli=mysql

在WHM中轻松使用Apache v3.32.14 自定义基本配置文件,并在详尽的选项列表和构建中启用MySQL改进扩展


mysqli_stmt::get_result仅适用于mysqlnd。-你在谷歌上搜索过你的错误消息吗?@Fred ii-在PHP5.3中,默认情况下它不是可用的吗?注意:mysqli_stmt::get_result仅在PHPV5.3.0或更高版本上可用。您提到它后,请在此处找到它,是的。我觉得很奇怪。看到这个问答-我会看看是否能找到更多。@Fred ii-那么有没有其他方法可以通过使用fetch_assoc而不使用get_result从execute获取结果?我可以在下面发布一个答案,因为注释太长了。你可以试试看。听起来怎么样?看起来这并不是这个问题的答案。托尼有完全相同的问题和行为::调用未定义的方法mysqli_stmt::get_result。问题是没有mysqlnd,您可以尝试所有其他喜欢的方法,但是如果您使用的是语句,则需要nd驱动程序。如果您想要nd驱动程序,只需安装它就无法工作-您需要重新启动httpd。重新绑定结果的公认答案是IMHO误导。这是一个驱动程序安装和配置问题。什么是$token?编辑:哦,这是查询中的内容。fetch_assoc不适用于station,但仅适用于结果集: