PHP 可有可無的WHERE,自動判斷WHERE語句
說明
在寫程式時候,有時候會有_可有可無的WHERE_被下載SQL語句中的時候
什麼是_可有可無的WHERE_?
好比方在搜尋的時候,我有輸入"搜索時間範圍",才會搜索時間;有輸入"搜索地區",才會搜索地區。
所以在程式裡面WHERE有沒有出現,是看使用者代入的參數的!
Code
這在這例子中,有設定姓名,才會搜尋姓名;有設定時間範圍,才會搜尋時間範圍,如果都沒有設定的話,就不會有WHERE語句出現。
// 不是重點的部份直接註解掉了:)
// $db = new db();
$where = array();
...
..
.
// if (isset($data->name)) {
array_push($where, "tableName.name='{$data->}'");
// }
// if (isset($data->minSearchTime) AND isset($data->maxSearchTime)) {
array_push($where, "tableName.datetime BETWEEN '{$data->minSearchTime}' AND '{$data->maxSearchTime}'");
// }
$where_string = empty($where) ? '' : ' WHERE '.join(' AND ', $where);
$sql = "SELECT * FROM tableName {$where_string}";
//$rst = $db->Query($sql);
return $rst;
留言
張貼留言