サッカーの試合のマッチングサービスを作っており、
試合募集記事の投稿→投稿の一覧→投稿の詳細をそれぞれ表示できるようにしました。
記事詳細のうち、1つを除いて全ての投稿が取れているのですが、
1件だけ記事を開こうとすると、下記のようなエラーが出ました。
Trying to get property 'name' of non-object
このエラーを改善すべく、まずはテーブルにきちんとデータが入っているかを確認しました。
①既存のテーブルデータ参照
select * from テーブル名;
②テーブルに入っているカラム名の順番を参照 ※select文で実行したテーブルと、そのテーブル内のカラムの順番を確かめるために実施。
PRAGMA table_info('テーブル名');
テーブルを確認した結果、都道府県と市区町村のID番号が他のテーブルと比較して、
大きく違うことが判明しました。
(これが起きた原因は、今は都道府県と市区町村をセレクトボックス化しているのですが、
セレクトボックス化する前に、手打ちで番号を書き込んだ時のものが残っていたんだと思います…)
上記を踏まえ、エラーが起きたレコードのprefecture_id,manuicipality_idを変更することに。
③ここで、UPDATE文の登場です。
UPDATE 該当テーブル名 SET prefecture_id = 27 where id=該当レコード名;
同様に、市区町村の方も変更して、無事データが取れるようになりました。