【问题标题】:Fatal error: Call to undefined method mysqli_stmt::get_result() [duplicate]致命错误:调用未定义的方法 mysqli_stmt::get_result() [重复]
【发布时间】:2014-01-19 22:00:57
【问题描述】:

自从我将我的站点移动到新的虚拟服务器后,我总是收到此错误消息

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管理面板。

除了通过apt-get download php5-mysqlnd 下载并使用 dpkg 安装 mysqlnd 之外,还有其他方法安装它,因为由于未满足要求,这会在每个后续的 apt-get 调用中引发错误,并从源代码编译包括 mysqlnd 的 PHP?

【问题讨论】:

  • 您使用的是哪个版本的 PHP? get_result() 是在 5.3.0 中添加的
  • 我正在运行 PHP 5.4.4

标签: php mysql mysqli prepared-statement mysqlnd


【解决方案1】:

我已经成功地安装了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 安装它

【讨论】:

    【解决方案2】:

    您的服务器没有 mysql 本地驱动程序 (mysqlnd)。

    在您的服务器中安装此扩展程序以使用获取结果功能。

    【讨论】:

    • 这正是我已经在我的问题中写的。我的问题是通过apt-get install php5-mysqlnd 安装mysqlnd 会删除Froxlor,我的服务器管理面板
    猜你喜欢
    • 2014-01-09
    • 2013-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-05
    • 2022-01-11
    相关资源
    最近更新 更多