【问题标题】:Can't use get_result(), mysqlnd is enabled无法使用 get_result(),mysqlnd 已启用
【发布时间】:2014-02-03 16:26:14
【问题描述】:

我刚刚将我所有的网站文件和数据库移到了一个虚拟主机上,但在尝试运行我的一个页面时遇到了以下错误:

Call to undefined method mysqli_stmt::get_result()

我之前看到过这个问题,它与未安装 mysqlnd 驱动程序有关。所以我联系了网络主机,他们说mysqli和mysqlnd都是使用以下PHP安装的:

<?php
    if (extension_loaded('mysqlnd'))
        echo 'extension mysqlnd is loaded'; // WORKED

    if (extension_loaded('mysqli'))
        echo 'extension mysqli is loaded'; // WORKED
?>

这是我要运行的 PHP:

<?php
    $cxn = mysqli_connect("localhost", "my_username", "my_password", "my_database") or die ("Couldn't connect to the server. Please try again.");

    $id = 0;

    $stmt = $cxn->prepare('SELECT value FROM test WHERE id = ?');
    $stmt->bind_param('i', $id);
    $stmt->execute();
    $result = $stmt->get_result();

    echo $result->num_rows;  
?>

请帮忙!

【问题讨论】:

  • The manual 也提到了 PHP/5.3.0。你的是什么?
  • 我使用的是 5.4.24 版本。
  • 保存错误检查(我猜为了简洁起见已将其删除)您的代码对我来说看起来很好。用phpinfo() 诊断东西通常更容易(如果只是因为它显示了更多信息),但我想不出extension_loaded('mysqlnd') 会撒谎的原因。奇怪...

标签: php mysql mysqli


【解决方案1】:

mysqlnd 实际上并不是一个扩展,而是一个被扩展使用的库。所以你的主机必须使用--with-mysqli=mysqlnd等选项构建php

【讨论】:

  • 没有得到你。我正在使用共享服务器。请您详细说明一下。
猜你喜欢
  • 2020-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-21
  • 2014-08-15
  • 2012-10-21
相关资源
最近更新 更多