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

时间:2014-10-15 18:36:06

标签: 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();

它给了我以下错误:

  

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

错误在哪里?我该如何解决?感谢

3 个答案:

答案 0 :(得分:4)

评论太长了。

试试这个:

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_assoc() ),就像现在一样。

  • N.B。:如果这对您不起作用,我只会删除答案。

<强> 脚注:

正如Rocket Hazmat在评论中所述,我引述:它需要两者 PHP 5.3+ mysqlnd驱动程序。

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

答案 1 :(得分:4)

如上所述,请确保已安装mysqlnd。

我花了一个小时搜索StackOverflow上的所有答案,因为我错过了一个至关重要的步骤而且我的脚本仍然失败了 - 这一步重新启动了httpd守护程序。

卸载php-mysql 安装php-mysqlnd

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

的情况

yum删除-y php55w-mysql yum install -y php55w-mysqlnd

这一切都很完美,但我的PHP仍然失败并出现错误&#34;调用未定义的方法mysqli_stmt :: get_result&#34;

所以我重新启动了Apache

service httpd restart

和 - TA-DA - 它完美无缺。

答案 2 :(得分:1)

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

  1. 转到此目录 的/ var /的cPanel /易/阿帕奇/ rawopts

  2. 并创建一个新文件all_php5 [/ var / cpanel / easy / apache / rawopts] #cat&gt; all_php5

  3. 添加以下文字并关闭文件
    --with-的mysqli = MySQL的

  4. 在WHM中轻松实现Apache v3.32.14 自定义基本配置文件并在穷举选项列表和构建中启用MySQL“改进”扩展。