我想在特定列值包含在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