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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
推しミネラルウォーターはありますか?
推しミネラルウォーターがあったら教えてください
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
selectによるレコード取得結果の有無で条件分岐
MySQL
-
データ数をカウントしたいのですが
Java
-
visual studio でインデントを自動的に揃えるショートカットキー
その他(プログラミング・Web制作)
-
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPでの検索機能がうまく動きま...
-
dbに登録したデータをphpのプル...
-
PHPのプルダウンメニューにDBの...
-
入れ子のようにしてデータを作...
-
PHPで[]の使い方について
-
PHPでMY SQLの連想配列をリンク...
-
phpでの再帰関数を利用したツリ...
-
PDOでの検索システムについて
-
sqlで受け取った緯度経度から地...
-
MYSQL、PHP. データが入ってい...
-
重複したフィールドに関して
-
php テーブルが作成できない
-
実行時エラー3131 FROM 句の構...
-
MySQLでデータベースにデータin...
-
データベースに存在するデータ...
-
時刻型にNULLでセットしたい
-
VBAをつかってクエリの情報を抽...
-
ResultSetインターフェイスでの...
-
mysqliを使ってデータベースを...
-
PHP+MYSQL IF文の初歩
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPで[]の使い方について
-
dbに登録したデータをphpのプル...
-
アラートでyes noを作りたいです。
-
phpでmysqlを使ってデータベー...
-
ヒアドキュメントについて
-
MySQLに保存した画像を表示したい
-
PHP 10件表示 "前へ" "次へ"
-
mysqlから取得した配列をカンマ...
-
DBで検索結果に該当するデータ...
-
PEAR DBでの行取得について
-
検索結果にラジオボタンを付加...
-
SELECT結果から動的にコンボボ...
-
検索結果をgoogleのように数件...
-
PHPでMySQLデータを呼び出し、w...
-
PHPでMySQLのデータを2次元配...
-
checkboxクリック時、SQLを実行...
-
php5.2.9に変更後に不具合について
-
PDOでLIKE検索
-
PHP+MySQLでの配列のinsert文に...
-
PHP・MySQL使用で、年齢制限を...
おすすめ情報