GETで取得したナンバーを元にDBを検索し、該当するデータがなければその旨を表示したいのですが、以下のソースでは「該当する記事はありません。」が出力されません。
else以降(データがあった場合)の処理は正常に行われているようなので、if文の最初の条件指定が間違ってるのかと思うのですが、PHPマニュアルにも同じ風にしか書いてなかったので「?」状態です。試しに一度if(!isset($result))と書いてみたんですがやはりダメでした。
どこを直せばいいのか、アドバイスをお願いいたします。
///////////////////////////////////////////////////////////
$conn = my_pg_connect();
$num=$_GET['num'];
if(!isset($num)){
$result_html="<p>不正なアクセスです。</p>";
}else{
$sql = "select * from testtable where num='{$num}'";
$result = pg_query($conn,$sql);
if(!$result){
$result_html="<p>該当する記事はありません。</p>";
}else{
(データがあった場合はHTMLとして書き出し)
}
}
(後略)
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を「最低限」噛ましましょう。
早速の回答ありがとうございます。
どこかで「やっぱり$resultではないよなぁ」と思いつつ、情けないことに他に思いつきませんでした。おかげさまで解決です。
現在はとりあえず動作確認最優先なので、XSS対策等は後回しにしているのですが、運用段階ではきちんと実装させたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
syntax errorの原因について
-
アラートでyes noを作りたいです。
-
checkboxクリック時、SQLを実行...
-
mySQLで結果が無いときの処理
-
mysqlテーブルから一つレコード...
-
mysqlから取得した配列をカンマ...
-
実行時エラー3131 FROM 句の構...
-
テキストボックスに入れた内容...
-
MySQLでデータベースにデータin...
-
SQL文の実行に失敗しました???
-
ResultSetインターフェイスでの...
-
VBAをつかってクエリの情報を抽...
-
codeigniter 複数モデルでトラ...
-
SQLで返り値が空とでる
-
SELECT COUNTで取得した結果の表示
-
JAVA SQLServerException 列名 ...
-
ボタンのonclick時における関数...
-
例外処理
-
<VB.NET>INSERT文でDBにデータ...
-
VBA ACCESS SQL...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPで[]の使い方について
-
エクセルVBAについて
-
DBで検索結果に該当するデータ...
-
アラートでyes noを作りたいです。
-
phpでmysqlを使ってデータベー...
-
checkboxクリック時、SQLを実行...
-
dbに登録したデータをphpのプル...
-
PHP+MySQLでの配列のinsert文に...
-
pg_queryの結果を2回とりだす...
-
検索結果($_POST)が2ページ目...
-
PHPについてなのですが未定義の...
-
VBA初心者です。
-
sortable ギブアップです…助け...
-
PEAR::DBで取得したデータで処...
-
DBのデータを表示させたい
-
データベース表示結果のデザイン
-
PHP 勤務時間の合計を出したい
-
mySQLからデータを取り出す
-
PHP と MySQL でテーブルの行数...
-
連想配列、オブジェクト配列の...
おすすめ情報