getパラメータが以下のように5つあって、

$_GET['aaa']
$_GET['bbb']
$_GET['ccc']
$_GET['ddd']
$_GET['eee']
それぞれ、値は空であったり、空で無かったりします。
空でなかった場合、SQLの検索条件として指定したいですが、
以下のようなやり方でセットしたいですが、
良い方法ありませんでしょうか。

//1.pdoバインドパラメータの設定
$params = array(
":Paaa" => $_GET['aaa'],
":Pbbb" => $_GET['bbb']
);
//2.SQL文
$sql = "
SELECT
*
FROM
TABLE
WHERE
aaa = :Paaa AND
bbb = :Pbbb
";
//3.SQL実行&結果取得
$res = parent::dataRequestDb($sql,$params);

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/10/16 23:04:28
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:ku__ra__ge No.1

回答回数118ベストアンサー獲得回数40

ポイント300pt

こんな感じでしょうか。

SELECT *
  FROM TABLE
 WHERE (aaa = :Paaa OR :Paaa IS NULL)
   AND (bbb = :Pbbb OR :Pbbb IS NULL)

以前にも似た質問があったようです。
http://q.hatena.ne.jp/1181206365

id:yayayai

ありがとうございます~(・∀・)
なるほど~

2013/10/16 23:03:27

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません