• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DBで検索結果に該当するデータがなかった場合)

DB検索結果なしの場合のエラーメッセージが表示されない問題の解消方法

このQ&Aのポイント
  • GETで取得したナンバーを元にDBを検索し、該当するデータがなければエラーメッセージを表示する処理について質問です。
  • 現在のソースでは、該当するデータがない場合でもエラーメッセージが表示されずに処理が続行されてしまいます。
  • if文の条件指定が間違っている可能性を考え、if文の条件を「!$result」から「!pg_num_rows($result)」に変更してみてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • wp_
  • ベストアンサー率54% (132/242)
回答No.1

if(!$result){ $result_html="<p>該当する記事はありません。</p>"; }else{ ↓ $result = pg_query($conn,$sql); $data = array(); while($row = pg_fetch_assoc($result)) {  $data[] = $row; } if($data == array()) {  $result_html="<p>該当する記事はありません。</p>"; } $resultはリソースです。正常にアクセスできたかを示すキーです。 実データではありません。 falseを返すのはconnectが不正とかいったパターンしかありませんよ。 >マニュアル マニュアルには以下の形式で載っていると思うのですが。。 $result = pg_query($query) or die('Query failed: ' . pg_last_error()); -- 蛇足。 $num=$_GET['num']; if(!isset($num)){ ↓ if(!isset($_GET['num'])){ }else{ $num=$_GET['num']; ですね。 あとGET値をそのままクエリに突っ込んでるのでかなり危険です。 pg_escape_stringを「最低限」噛ましましょう。

rusya
質問者

お礼

早速の回答ありがとうございます。 どこかで「やっぱり$resultではないよなぁ」と思いつつ、情けないことに他に思いつきませんでした。おかげさまで解決です。 現在はとりあえず動作確認最優先なので、XSS対策等は後回しにしているのですが、運用段階ではきちんと実装させたいと思います。

関連するQ&A