我使用PDO與URL查詢字符串顯示結果基於URL PDO
url: index.php?bType=doctor&loc=asia|india
CODE取出由數據庫結果:
$bind = array();
$str=explode('|',$_GET[loc]);
foreach ($str as $loc)
{
$bloc[] = $loc;
} $loca = implode("','", $bloc);
$btype=$_GET['bType'];
$sqlsb = "SELECT * FROM t_business WHERE 1=1";
if(isset($_GET['bType'])){ $sqlsb .=" AND type like :btype"; $bind['btype']='%'. $btype .'%';}
如果(isset($ _ GET [ 'loc'])){$ sqlsb。=「AND location IN(:loca)」; $綁定[ '軌跡'] = 「 '$軌跡'」;}
$qsb = $db->prepare($sqlsb);
$qsb->execute($bind);
上述代碼讀取沒什麼..
print_r($bind)
顯示Array ([btype] => doctor [loca] => asia','india)
如果我做到這一點,而無需使用製備有用。
我正在編寫用於優化搜索過濾器的代碼。
感謝
UPDATE
AS CoursesWeb anwserd我沒有改變
if(isset($_GET['bType'])){ $sqlsb .=" AND type like :btype"; $bind['btype']='%'. $btype .'%';}
if(isset($_GET['loc'])){ $sqlsb .=" AND location IN (:loca)"; $bind['loca']="'$loca'";}
它爲:btype
但與:loca
print_r($bind)
展示array ([btype] => %doctor% [loca] => 'asia','india')
需要與loc
做的更好的東西比使用implode..think所以
無論數據來自URL,POST,Cookie,會話,文件,數據庫,電子郵件,變量等,它不改變PDO是如何工作的。啓用通知,你會看到'$ _GET [loc]'只是壞的。 'loc'指的是一個名爲'loc'的常量 - 當它找不到時,它將放棄並將其轉換爲一個字符串。 '$ _GET ['loc']'有什麼問題? – h2ooooooo
是所有都donwvoting它..我認爲它也將有助於未來的人 – Gopal