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

时间:2014-01-19 22:00:57

标签: php mysql mysqli prepared-statement mysqlnd

由于我已将我的网站移至新的vServer,因此我始终收到此错误消息

Fatal error:  Call to undefined method mysqli_stmt::get_result()

这些代码行正常工作

$mysql = new mysqli($db_host, $db_user, $db_password, $db_database);
$partys = NULL;
$res_partys = $mysql->query("SELECT * FROM party ORDER BY begin");
while($row_partys = $res_partys->fetch_array()) {
    $partys[] = $row_partys;
}
$count_reg = $mysql->prepare("SELECT COUNT(*) FROM guestlist WHERE partyid = ?");
$count_reg->bind_param('i', $party['partyid']);
$count_reg->execute();

但是$count_res = $count_reg->get_result();失败了。启用了Mysqli支持。

根据一些互联网资源,我需要PHP MySQL本机驱动程序,但我只在我的Debian 7机器上安装了php5-mysql,因为通过apt-get install php5-mysqlnd安装php5-mysqlnd会自动删除Froxlor,这是我的服务器管理面板。

是否有其他方法可以安装mysqlnd,除非通过apt-get download php5-mysqlnd下载并使用dpkg安装它,因为这会因为未满足的要求而在每次跟随apt-get调用时抛出错误,并从源代码编译PHP包括mysqlnd?

2 个答案:

答案 0 :(得分:5)

我已经管理了安装php5-mysqlnd而没有删除Froxlor。

Froxlor对php5-mysql有依赖性,通过安装php5-mysqlnd删除,但也与mysqlnd兼容。

因此,我必须通过apt-get download php5-mysqlnd下载该软件包,然后使用dpkg -i --ignore-depends=froxlor php5-mysqlnd_5.4.4-14+deb7u7_amd64.deb

进行安装

答案 1 :(得分:0)

您的服务器没有mysql本机驱动程序(mysqlnd)。在服务器中安装此扩展程序以使用get result函数。