2010-05-22 38 views
1

语句中使用这样的数组:修改MySQL的当基于阵列

$data = array 
    (
     'host' => 1, 
     'country' => 'fr', 
    ) 

我想创建一个使用数组的值,形成一个MySQL查询的WHERE子句,如:

SELECT * 
FROM table 
WHERE host = 1 and country = 'fr' 

我怎样才能生成这个查询字符串与MySQL一起使用?

回答

4

试试这个

$where = ''; 

foreach($data as $k => $v) { 
    if(!empty($where)) 
     $where .= ' AND '; 

    $where .= sprintf("`%s` = '%s'", mysql_real_escape_string($k), mysql_real_escape_string($v)); 
} 

mysql_query("SELECT * FROM `table` WHERE $where"); 
+0

这是完美的!非常感谢! – Ryan 2010-05-22 21:44:05

+2

免得我们忘记Little Bobby Tables:http://xkcd.com/327/ – 2010-05-22 21:50:32

+1

在http://bobby-tables.com/php.html添加了一个链接 – 2010-06-03 16:30:10