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();
?>