我有一个输出数据的表单:
index.php?city=ADDIEVILLE&city=ALBERS&city=ALHAMBRA
然后需要进入一个mysql where语句,如:
WHERE CITY = ADDIEVILLE OR CITY = ALBERS OR CITY = ALHAMBRA
如何使用PHP将这些多个城市传递给mySQL查询?
答案 0 :(得分:3)
index.php?city=ADDIEVILLE&city=ALBERS&city=ALHAMBRA
将打印为:$_GET['city']='ALHAMBRA';
,而:
index.php?city[]=ADDIEVILLE&city[]=ALBERS&city[]=ALHAMBRA
将打印为数组。
然后可以将其转换为:
$cities = $_GET['city'];
$str = "CITY='".implode("' OR CITY='",$cities)."'";
echo $str;
注意:$cities
应进行包皮细菌检疫。
答案 1 :(得分:1)
作为@MichaelBerkowski says,您应该使用city[]
作为您的字段名称,然后您可以执行以下操作:
$dbh = new PDO("mysql:dbname=$dbname", $username, $password);
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);
$qry = $dbh->prepare('
SELECT *
FROM my_table
WHERE CITY IN ('.implode(',', array_fill(0, count($_GET['city']), '?')).')
');
$qry->execute($_GET['city']);