Php MySQLi返回一个带有bind_结果的数组,而fetch不起作用

Php MySQLi返回一个带有bind_结果的数组,而fetch不起作用,php,sql,database,mysqli,php-5.3,Php,Sql,Database,Mysqli,Php 5.3,我想知道如何重写/修复以下代码 基本上,我有一个名为DB的数据库和一个名为poems的表。我想获取poems表中具有特定ID的所有数据(即谁写了这首诗、它的标签、它的内容、创建时间等),并将其安全地存储在一个数组中,以便稍后打印到网页上 我的托管服务不支持mysqli\u getresult()所需的mysqlnd驱动程序,因此我当前收到错误“调用未定义的方法mysqli\u stmt::get\u result()” $mysqli是使用new mysqli() 函数getpoemdata($

我想知道如何重写/修复以下代码

基本上,我有一个名为
DB
的数据库和一个名为
poems
的表。我想获取
poems
表中具有特定ID的所有数据(即谁写了这首诗、它的标签、它的内容、创建时间等),并将其安全地存储在一个数组中,以便稍后打印到网页上

我的托管服务不支持
mysqli\u getresult()
所需的mysqlnd驱动程序,因此我当前收到错误“
调用未定义的方法mysqli\u stmt::get\u result()

$mysqli
是使用
new mysqli()

函数getpoemdata($mysqli){ echo“功能已启动。”; if(isset($\u GET['poem\u id']){//检查URL中是否设置了poem\u id $poemid=$\u获取['poem\u id'];//获取URL中设置的poem\u id 如果(!is_int($poemid)){$poemid=7;}//检查poem_id是否设置为整数 如果($poemid准备(“从'poems'中选择*,其中'poems\u id`=?”); $stmt->bind_参数('i',$poemid); $stmt->execute(); $result=$stmt->get_result(); $returned_data=$returned_data->fetch_array(); 而($stmt->fetch()){ echo$返回了_数据。“
”; } $stmt->free_result(); } else{//如果用户只键入“poemview.php”而不是“poemview.php?poem_id=” 回声“错误”; } } 提前非常感谢您的帮助-我对PHP非常陌生,并且一直在努力学习它-每次我尝试做一些新的事情,并且需要学习更多的函数时,都会有点不知所措。

get\u result()
是在PHP 5.3.0中引入的,如上所述,它需要mysqlnd。但是,我认为您不需要它。您可以结合使用
bind\u result
来检索数据。可能还有其他方法

文档中的示例:

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

if ($stmt = $mysqli->prepare($query)) {

    /* execute statement */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($name, $code);

    /* fetch values */
    while ($stmt->fetch()) {
        printf ("%s (%s)\n", $name, $code);
    }

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>
文档下面的一个示例演示了如何绑定到数组

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

if ($stmt = $mysqli->prepare($query)) {

    /* execute statement */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($name, $code);

    /* fetch values */
    while ($stmt->fetch()) {
        printf ("%s (%s)\n", $name, $code);
    }

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>