![](/img/trans.png)
[英]Fatal error: Call to undefined method mysqli_stmt::get_result() in
[英]Fatal error: Call to undefined method mysqli_stmt::get_result() On host running 5.4.x
在我的测试环境中,此功能可以正常工作。 但是当我在虚拟主机上尝试返回此错误。 Fatal error: Call to undefined method mysqli_stmt::get_result()
我知道您需要mysqlnd驱动程序。 但是版本5.4.x Source会自动支持它。 但是我的主机甚至安装了较新版本的PHP。 所以我不明白为什么它不起作用。
Test environment:
PHP: 5.4.12
MySQL: 5.6.12
Webhost (doesnt work):
PHP: 5.4.37
MySQL: 5.5.42-cll
我该如何解决这个问题? 是否有某种手动安装mysqlnd驱动程序? 还是与MySQL版本有关。
编辑:我在我的虚拟主机中放置了一个测试文件,并且看来get_result()
函数不可用。
<?php
$hasMySQL = false;
$hasMySQLi = false;
$withMySQLnd = false;
if (function_exists('mysql_connect')) {
$hasMySQL = true;
$sentence.= "(Deprecated) MySQL <b>is installed</b> ";
} else
$sentence.= "(Deprecated) MySQL <b>is not</b> installed ";
if (function_exists('mysqli_connect')) {
$hasMySQLi = true;
$sentence.= "and the new (improved) MySQL <b>is installed</b>. ";
} else
$sentence.= "and the new (improved) MySQL <b>is not installed</b>. ";
if (function_exists('mysqli_fetch_all')) {
$withMySQLnd = true;
$sentence.= "This server is using MySQLnd as the driver.";
} else
$sentence.= "This server is using libmysqlclient as the driver.";
echo $sentence . "<br>";
$db = new PDO('mysql:host=localhost;dbname=xxx', 'xxx', 'xxx');
if (strpos($db->getAttribute(PDO::ATTR_CLIENT_VERSION), 'mysqlnd') !== false) {
echo 'PDO MySQLnd enabled!'. "<br>";
}
else {
echo 'Not enabled'. "<br>";
}
if (function_exists('get_result')){
echo "get result() works". "<br>";
}
else {
echo "nope result() doesnt work". "<br>";
}
phpinfo();
$arr = get_defined_functions();
print_r($arr);
您可以在此处查看结果: 我的主机上的“测试”页面
我将联系我的托管服务提供商。 但我想知道是否还有其他解决方案/解决方法
编辑:所以我的托管服务提供商无法帮助我。 他们不想只为我更改mysqli服务器。 所以我改用PDO而不是MySQLi,这有点烂,因为我必须重写很多:(。
检查您的php.ini。 您需要启用mysqli dll
extension=php_mysqli.dll
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.