研究,查看stackoverflow,通过Google查看,我发现有几个人遇到同样的问题,解决方案通常是“仅适用于mysqlnd。”
所以我环顾四周并查看了一些代码,但据我所知,我的服务器启用了mysqlnd IS。所以我这样做不相信这是重复。
$id = $stmt->get_result();
无论出于何种原因,这行代码似乎在我的应用程序中造成打嗝,这在我的本地XAMPP服务器上完美运行。我认为这是我的公共服务器配置的某种问题,但我无法弄清楚是什么。
PHP正在抛出此错误:
[18-Mar-2014 15:39:27 America/Denver] PHP Fatal error:
Call to undefined method mysqli_stmt::get_result() in
/home/PATH/PAGE.php on line 47
同样,我的代码在我的本地服务器上运行良好。这是我的phpinfo()
...
只是为了衡量,我的PHP版本是5.4.22
。最后,在系统控制台中运行php -i | grep mysqlnd
会给我mysqlnd => enabled
。
那么......怎么了?我错过了什么?谢谢您的考虑。我希望这也可以帮助其他人。更多代码(根据要求)......
$mysqli = new mysqli('localhost', 'usr', 'pass', 'table');
$chkid = "SELECT * FROM `students` WHERE student_id = ? LIMIT 1";
if ($mysqli->connect_error) { //We'll catch an error or two here.
die("{CNCT}");
}
$arrays = json_decode($_POST['data'], true); //Here, we take the JSON string and create PHP arrays
for ($x=0; $x<=((count($arrays))-1); $x++) { //We count the array
$stmt = $mysqli->prepare($chkid);
$inputz = ($arrays[$x]['id']);
$stmt->bind_param("s", $inputz);
$stmt->execute();
$id = $stmt->get_result(); //THIS LINE
$stmt->close();
$row = $id->fetch_array(MYSQLI_NUM);
}
我希望我能在不搞砸代码的情况下适当地删除所需的一切。它正在我的本地XAMPP服务器上工作。
答案 0 :(得分:1)
它不仅需要mysqlnd存在本身,而且还必须使用mysqlnd支持专门构建mysqli。为此,必须使用配置选项
构建PHP--with-mysqli=mysqlnd
在你的phpinfo输出中,必须在mysqli部分的Client API library version
项下提及mysqlnd:
○:
不好:
我对XAMPP一无所知,因为我总是手动构建整个服务器。您似乎需要寻找其他版本或其他版本。
答案 1 :(得分:0)
在尝试了很多东西后,我用MySQL( NOT 系统的MySQL)和MySQL Improved(MySQLi)重建了Apache(在WHM中,使用EasyApache)。以前我曾使用MySQL(系统)和MySQL改进的组合。构建完成后,一切都像魔术一样工作。
谢谢大家!