get_result()即使启用mysqlnd也不起作用

时间:2016-04-19 15:37:26

标签: php mysql mysqlnd

这可能是许多问题的重复,但我似乎无法从任何问题中得到我的答案。我正在使用由hostgator提供的multi domain linux hosting。我试图使用mysqli_stmt_get_result()但它会抛出我说错误是undefined method。我联系了hostgator管理面板,他们为我启用了mysqlnd扩展。我确实看到我的网站的phpinfo启用了mysqlnd扩展。但是我仍然看到同样的错误。

$mysqlnd = function_exists('mysqli_stmt_get_result');

if ($mysqlnd) {
    echo 'mysqlnd enabled!';
}
else
   var_dump("nope");

我尝试检查它是否已启用,它显示nope但我确实在我的phpinfo中启用了mysqlnd。

问题是什么?如何解决这个问题?另外,使用任何其他方法都不是一种选择,因为我已经使用mysqli_stmt_get_result()对整个项目进行了编码。

更新

Mysqli

mysqlnd

查询:

 $stmt=$this->link->prepare("SELECT `Session_Data`,`ip_address` FROM Session WHERE `Session_Id` = ? AND `Session_Expires` > '".date('Y-m-d H:i:s')."'");

        $stmt->bind_param("s",$id);
        $stmt->execute();
         $res=$stmt->get_result();

3 个答案:

答案 0 :(得分:20)

我在这里回答了我自己的问题,就像所有陷入困境的人一样。为了让这件事工作,在php扩展中启用nd_mysqli并禁用mysqli。这将像魅力一样工作!祝你好运。

答案 1 :(得分:1)

转到Cpanel->“软件”部分下的PHP版本,然后更改以下选项,启用nd_mysqli enter image description here

答案 2 :(得分:0)

是的,它与选定的nd_mysqli选项一起使用。谢谢@BOTJr。它还显示“ nd_mysqli跳过冲突”作为警告,因此不必担心,只需禁用mysqlnd,mysqli,然后再次启用nd_mysqli选项。它将正常工作。