2012-07-26 130 views
-3

我想在特定列值包含在PHP变量中时返回特定表中的所有行,例如:第34行:有'xyz'列等于=“rabbit”和我的PHP变量是$var = "rabbit,robert,teen",因为“xyz”列值包含在$var我希望它被选中。PHP,Mysql,在数据库内搜索

我该怎么做?

+0

它更改为XYZ IN(兔,罗伯特,青少年) – Cups 2012-07-26 15:04:14

+0

@Cups等价的:他可能不希望'robert'和'青少年'。还是他? – 2012-07-26 15:05:27

+0

我没有罗伯特和青少年的任何事情,但因为兔子是在PHP变量和xyz列是兔子我希望列返回。 – southpaw22 2012-07-26 15:06:44

回答

0

如果我正确理解你的问题,你在寻找这样的事情:

$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) 

注意:不要忘记清洗/逃避/消毒用户的输入。

2

转换逗号分隔的列表,以SQL格式和位置查询

$query = "select blah blah WHERE xyz IN ('".str_replace("," ,"','", $var)."');" 
+1

非常整齐,+1 – Adi 2012-07-26 15:17:41