PHP で「非オブジェクトのプロパティを取得しようとしています」エラーを修正する方法は?

DDD
リリース: 2024-11-08 15:44:02
オリジナル
901 人が閲覧しました

How to Fix the

PHP での「非オブジェクトのプロパティを取得しようとしています」エラーを解決する

PHP を使用しているときに、「オブジェクト以外のプロパティを取得しようとしています」というエラーが発生することがあります。非オブジェクトのプロパティを取得します。」このエラーは通常、適切に初期化されていないオブジェクト、または null であるオブジェクトのプロパティにアクセスしようとしたときに発生します。

提供されたコードの場合、問題はデータベースからのサイドメニュー データのフェッチにあります。 mysql_fetch_object() 関数は、オブジェクトの配列ではなく、単一のオブジェクトを返します。その結果、ビュー ページで $sidemenus 変数を反復処理すると、エラーがトリガーされます。

この問題を解決するには、コントロール ページのコードを次のように変更します。

$results = mysql_query("SELECT * FROM sidemenu WHERE `menu_id`='".$menu."' ORDER BY `id` ASC LIMIT 1", $con);

$sidemenus = array();
while ($sidemenu = mysql_fetch_object($results)) {
    $sidemenus[] = $sidemenu;
}
ログイン後にコピー

このコードmysql_fetch_object() によって返された単一のオブジェクトをオブジェクトの配列に変換します。その後、ビュー ページはプロパティ エラーが発生することなく配列を反復処理できます。

もう 1 つの方法は、データベース対話のためのより最新で安全なインターフェイスを提供する PDO を使用することです。 PDOStatement::fetchAll(PDO::FETCH_OBJ) メソッドを使用して、データベース クエリからオブジェクトの配列をフェッチできます。

以上がPHP で「非オブジェクトのプロパティを取得しようとしています」エラーを修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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