我想在特定列值包含在PHP變量中時返回特定表中的所有行,例如:第34行:有'xyz'列等於=「rabbit」和我的PHP變量是$var = "rabbit,robert,teen"
,因爲「xyz」列值包含在$var
我希望它被選中。PHP,Mysql,在數據庫內搜索
我該怎麼做?
我想在特定列值包含在PHP變量中時返回特定表中的所有行,例如:第34行:有'xyz'列等於=「rabbit」和我的PHP變量是$var = "rabbit,robert,teen"
,因爲「xyz」列值包含在$var
我希望它被選中。PHP,Mysql,在數據庫內搜索
我該怎麼做?
如果我正確理解你的問題,你在尋找這樣的事情:
$arr = explode(',', $var);
$where_in_val = '';
foreach($arr as $value){
$where_in_val.= "'$value',";
}
$where_in_val = substr($where_in_val,0,-1);
那麼你的查詢可能是這樣的
SELECT * FROM my_table WHERE xyz IN ($where_in_val)
注意:不要忘記清洗/逃避/消毒用戶的輸入。
轉換逗號分隔的列表,以SQL格式和位置查詢
$query = "select blah blah WHERE xyz IN ('".str_replace("," ,"','", $var)."');"
非常整齊,+1 – Adi 2012-07-26 15:17:41
它更改爲XYZ IN(兔,羅伯特,青少年) – Cups 2012-07-26 15:04:14
@Cups等價的:他可能不希望'robert'和'青少年'。還是他? – 2012-07-26 15:05:27
我沒有羅伯特和青少年的任何事情,但因爲兔子是在PHP變量和xyz列是兔子我希望列返回。 – southpaw22 2012-07-26 15:06:44