前提・実現したいこと
PHPでSQLのselect文を作成する関数を作成しようと思っているのですが、引数を以下のように設定しました。
●入力値
第一引数:カラム名を格納した1次元配列
第二引数:テーブル名
第三引数:条件に関する(WHERE句で用いる)情報を格納した配列。以下のような情報を1要素としている。
[カラム名,演算子,比較値]:例)['id','=',12]、['age','>',20],['word','NOT LIKE','%やま%']
●返却値
与える引数に誤りがなければSQL文、誤りがあればfalse(bool値)を返す。
発生している問題・エラーメッセージ
困っているのはWHERE句の「AND」「OR」などの論理演算子をどのように実現するかです。
(条件① AND 条件②) AND 条件③であることもあれば、
(条件① OR 条件②) AND 条件③であることもあります。
条件句WHERE以降を構築するために引数の設定をどのように実装すべきか…とか、
どのように処理を行えばいい…などのアドバイスがあればいただきたいです。
また、不可能ではないかという場合、不可能であると教えていただきたいです。
エラーメッセージはありません
該当のソースコード
「SELECT .... FROM ... WHERE」までを作成するコードを念のため張り付けておきます。
(注)以下のコードはWHERE句以下の作成未実装の不完全なコードです。
function create_select_sql($select = ['*'],$table,$conditions){ $sql = 'SELECT'; foreach($select as $key => $value){ if($key > 0){ $sql .= ', '.$select.' '; } else{ $sql .= ' '.$select.' '; } } $sql .= ' '.$table.' WHERE'; }
試したこと
配列の深さでAND、ORを分けられないか?→不可能でした
補足情報(FW/ツールのバージョンなど)
特になし
回答2件
あなたの回答
tips
プレビュー