1

私はdbからランダムな質問を取得しようとしている外部ファイルにこの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型のオブジェクトを使用できません

何か助けはありますか?ありがとうございました

みなさん、ありがとうございました...残念ながら、私は1つの答えしか受け入れることができません。私は、最初に答えたものを選びます。

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 に答える