1

我在外部文件中有这个 php 脚本,试图从数据库中获取随机问题:

<?php
//connect to db
require_once('db.php');

$id=rand(0,13); //2nd number = highest ID

if ($resQ = $mysqli->query("SELECT Quest FROM qa WHERE ID='$id'")){

   echo "" . $resQ['Quest'] . ""; //This is Line 9

   $resQ->close();
}
$mysqli->close();
?>

我在我的页面中这样称呼它

<body>
code...

<?php require_once('script/m_q.php'); ?>

...code
</body>

但我得到错误:

致命错误:无法在第 9 行的 .../m_q.php 中使用类型为 mysqli_result 的对象作为数组

有什么帮助吗?谢谢

谢谢大家......不幸的是我只能接受一个答案,我选择第一个回答的那个。

4

4 回答 4

3

您必须调用对象的fetch_assoc()方法mysqli_result才能访问数据:

<?php
//connect to db
require_once('db.php');

$id=rand(0,13); //2nd number = highest ID

if ($resQ = $mysqli->query("SELECT Quest FROM qa WHERE ID='$id'")){

   $data = $resQ->fetch_assoc();
   echo "" . $data['Quest'] . ""; //This is Line 9

   $resQ->close();
}
$mysqli->close();

?>
于 2012-07-17T08:59:46.277 回答
2

mysqli::query 确实返回结果集,您必须获取行才能访问列。

于 2012-07-17T08:57:40.673 回答
2

您需要先获取数据。

$rs = $resQ->fetch_assoc();
echo $rs['Quest'];
于 2012-07-17T09:00:55.837 回答
0

$resQ 无法进入 if 语句...首先使用 mysql_fetch_assoc 或 mysql_fetch_array 为其分配数据。

于 2012-07-17T09:41:43.823 回答