非オブジェクトのプロパティにアクセスしようとしています: 解決されました
MySQL クエリは多くの場合、複数の行を返します。これらの行を反復処理するには、mysql_fetch_object() のループを使用して各行をオブジェクトとしてフェッチします。ただし、存在しないオブジェクトのプロパティにアクセスしようとすると、「非オブジェクトのプロパティを取得しようとしています」というエラーが発生します。このエラーは、クエリ結果が空であることを示します。
この問題を解決するには、クエリ結果が存在するかどうかを確認します。修正されたコードは次のとおりです。
コントロール ページ:
<?php include 'pages/db.php'; $results = mysql_query("SELECT * FROM sidemenu WHERE `menu_id`='{$menu}' ORDER BY `id` ASC LIMIT 1", $con); // Check if the query result exists if ($results) { $sidemenus = mysql_fetch_object($results); } ?>
ビュー ページ:
<?php if ($sidemenus) { foreach ($sidemenus as $sidemenu): ?> <?php echo $sidemenu->mname."<br />"; ?> <?php endforeach; } ?>
または、 PDOStatement::fetchAll(PDO::FETCH_OBJ) で PDO を使用して、クエリからオブジェクト配列を自動的に取得します。
以上がMySQL クエリ結果にアクセスすると「非オブジェクトのプロパティを取得しようとしています」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。