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

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

Barbara Streisand
リリース: 2024-12-01 22:38:13
オリジナル
993 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート