2

研究,在stackoverflow上看,通过google,我发现有几个人有同样的问题,解决方案一般是“仅用mysqlnd可用”。

所以我环顾四周并查看了一些代码,但据我所知,我的服务器上启用了 mysqlnd。所以这就是为什么我相信这是重复的。

$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()...

MySQLi 似乎存在...

MySQLnd 似乎存在...

为了更好的衡量,我的 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 服务器上运行。

4

2 回答 2

2

它不仅需要 mysqlnd 本身存在,而且 mysqli 必须专门在 mysqlnd 支持下构建。为此,必须使用配置选项构建 PHP

--with-mysqli=mysqlnd

Client API library version在您的 phpinfo 输出中,必须在 mysqli 部分的项目下提及 mysqlnd :

好的: 在此处输入图像描述

不好: 在此处输入图像描述

不过我不知道 XAMPP,因为我总是手动构建整个服务器。看来您需要寻找另一个版本或另一个发行版。

于 2014-03-19T04:26:46.747 回答
0

在尝试了很多事情之后,我用 MySQL(不是系统的 MySQL)和 MySQL 改进(MySQLi)重建了 Apache(在 WHM 中,使用 EasyApache )。以前我使用过 MySQL(系统的)和 MySQL 改进的组合。构建完成后,一切都像魔术一样工作。

谢谢大家!

于 2014-03-20T18:15:32.820 回答