ホームページ >データベース >mysql チュートリアル >MySQL クエリ結果にアクセスすると「非オブジェクトのプロパティを取得しようとしています」というメッセージが表示されるのはなぜですか?

MySQL クエリ結果にアクセスすると「非オブジェクトのプロパティを取得しようとしています」というメッセージが表示されるのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-01 22:38:131062ブラウズ

Why Am I Getting

非オブジェクトのプロパティにアクセスしようとしています: 解決されました

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。