当调用get_result()
时,Mysqli准备好的语句(如下面的语句)会引发以下错误。
$stmt = $connection -> prepare("select column from table where id = ?");
$stmt -> bind_param("i", $id);
$id = 1;
$stmt -> execute() or trigger_error($stmt -> execute(), E_USER_ERROR);
$stmt_result = $stmt -> get_result();
$stmt_numrows = $stmt_result -> num_rows;
$stmt -> close();
Fatal error: Uncaught Error: Call to undefined method mysqli_stmt::get_result()
在阅读了手册的贡献部分之后,看来这是一个模块问题。 http://php.net/manual/en/mysqli-stmt.get-result.php处的文档指出“仅适用于mysqlnd”,已在服务器上启用。
当我禁用mysqli扩展名并启用nd_mysqli时,似乎一切正常(在这里也建议使用:get_result() Doesn't Work even mysqlnd is enabled,但没有进一步的解释)。
我想通过交换这两个扩展来知道我还要做什么,因为这两个扩展彼此冲突并且无法一起启用。我会在此过程中失去一些功能吗?除了包括get_result()的nd_mysqli以外,这两个扩展有什么区别?