mySQL从URL查询中获取单列的多个参数

时间:2013-01-03 19:56:39

标签: php mysql

我有一个输出数据的表单:

index.php?city=ADDIEVILLE&city=ALBERS&city=ALHAMBRA

然后需要进入一个mysql where语句,如:

WHERE CITY = ADDIEVILLE OR CITY = ALBERS OR CITY = ALHAMBRA

如何使用PHP将这些多个城市传递给mySQL查询?

2 个答案:

答案 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']);