これの良い解決策は何ですか?SQL Concat Where句
私は、3つのオプションのパラメータ(businessunit_id、department_id、jobtitle)を持つ関数を持っています。私は動的に構築する必要がありますWHERE受信パラメータに従ってSQL節。上記のコードで
CODE
public function getEmpSearchResult($businessunit_id,$department_id,$jobtitle)
{
$i=0;
$WHERE = "";
if (!empty($businessunit_id))
{
if($i==1) {
$WHERE = $WHERE." AND";
}
$WHERE = "businessunit_id"."=".$businessunit_id;
$i=1;
}
if (!empty($department_id))
{ if($i==1) {
$WHERE = $WHERE." AND";
}
$WHERE = $WHERE." department_id"."=".$department_id;
$i=1;
}
if (!empty($jobtitle))
{
if($i==1) {
$WHERE = $WHERE." AND";
}
$WHERE = $WHERE." jobtitle_id"."=".$jobtitle;
$i=1;
}
$query = "SELECT * FROM `main_employees_summary` WHERE $WHERE ";
$data = $db->query($query)->fetchAll();
return $data;
。私は変数$をconcatingし、必要な場合と状態を追跡するために$ I変数を使用しています建てWHERE状態に。
これを実現する最適な方法はありますか?
配列に収集し、 'implode' –
^に追加するには、プリペアドステートメントを使用します。 –