php-クラスmysqli_resultのオブジェクトを文字列に変換できませんでした
エラーが発生しました:
クラスmysqli_resultのオブジェクトを文字列に変換できませんでした
これは私のコードです:
$result = mysqli_query($con, "SELECT classtype FROM learn_users WHERE username='abcde'"); echo "my result <a href='data/$result.php'>My account</a>";
答え :
解決策:
mysqli:query()
はmysqli_result
オブジェクトを返します。これは文字列にシリアル化できません。
オブジェクトから結果をフェッチする必要があります。方法は次のとおりです。
単一の値が必要な場合。
結果から単一の行をフェッチしてから、列インデックス0にアクセスするか、関連付けキーを使用します。結果に行が含まれない場合は、null合体演算子を使用してください。
$result = $con->query($tourquery); // or mysqli_query($con, $tourquery);
$tourresult = $result->fetch_array()[0] ?? '';
// OR
$tourresult = $result->fetch_array()['roomprice'] ?? '';
echo '<strong>Per room amount: </strong>'.$tourresult;
複数の値が必要な場合。
foreach ループを使用して結果を反復処理し、各行を1つずつフェッチします。列名を配列インデックスとして使用して、各列にアクセスできます。
$ result = $ con-> query($ tourquery); //またはmysqli_query($ con、$ tourquery);
foreach($ result as $ row){
echo'部屋あたりの金額:'。$row ['roomprice'];
}
答え :
解決策:
ループしてから、レコードにアクセスする必要があります。 mysqli_query() メソッドは、オブジェクトリソースを
$result
変数に返します、文字列ではありません。
$result
変数として直接使用することはできません。 while($ row = $result-> fetch_assoc()){
echo $row['classtype']。"
";
}
答え :
解決策:
$result 変数を使用する前に、
$row = mysqli_fetch_array({-code-1 })
またはmysqli_fetch_assoc()
関数。
このように:
$row = mysqli_fetch_array($result);
必要に応じて$row
配列を使用します。
答え :
解決策:
試してみてください:
$row = mysqli_fetch_assoc($result);
echo "my result <a href='data/" . htmlentities($row['classtype'], ENT_QUOTES, 'UTF-8') . ".php'>My account</a>";
答え :
解決策:
query() 関数はオブジェクトを返します。その関数から返されたものから、レコードをフェッチする必要があります。 mysqlからデータを印刷する方法については、この
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。