
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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
チェックボックスによる複数の...
-
mysql_fetch_objectの書き方を...
-
DBで検索結果に該当するデータ...
-
検索結果をgoogleのように数件...
-
phpのParse errorについて
-
PHP 10件表示 "前へ" "次へ"
-
PHPで[]の使い方について
-
mysql_fetch_assoc()の非推奨
-
dbに登録したデータをphpのプル...
-
PHPで絞り込み検索結果の件数を...
-
cakePHPでSQLが実行できない。
-
INSERT,DELETEを同時に
-
phpにて出欠登録管理を作成して...
-
SQL文の連結が、うまくいきません
-
SQL文2つ実行
-
stringaddslashes 半角¥が消える
-
mysql_query等でレコード数を変...
-
カラムにデータがあるかないか...
-
検索表示について
-
Yomi-search(PHP)を設置する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アラートでyes noを作りたいです。
-
PHPで[]の使い方について
-
dbに登録したデータをphpのプル...
-
python pandas 行ごとに列名(...
-
DBで検索結果に該当するデータ...
-
大変困っております。PHP ...
-
sqlで受け取った緯度経度から地...
-
SELECT結果から動的にコンボボ...
-
sortable ギブアップです…助け...
-
チェックボックスでチェックし...
-
php ログインフォーム作成
-
MySQLに保存した画像を表示したい
-
DBで指定した値しか存在しない...
-
checkboxで複数選択して,OR...
-
文字化けが解決できません。お...
-
mysqlから取得した配列をカンマ...
-
1ヶ月以内に誕生日を迎える社員...
-
配列としてMysqlから値を取得す...
-
phpでmysqlを使ってデータベー...
-
チェックボックスによる複数の...
おすすめ情報