基于数组的SQL查询[重复]
Posted
技术标签:
【中文标题】基于数组的SQL查询[重复]【英文标题】:SQL query based on array [duplicate] 【发布时间】:2013-04-19 20:19:38 【问题描述】:我有一个名为 $restaurantArray
的数组,其中包含一系列餐厅 ID。
我是否可以执行一个 mysql 查询,如果它们的 id 等于数组中的这些餐厅 ID 之一,它将返回行?
谢谢。
【问题讨论】:
你有没有尝试过?如果是这样,请说明这一点,以及您与数据库的交互方式。 这可能有用:***.com/a/11181663/1208233 【参考方案1】:您可以在 mysql 查询中使用 IN。 只需将数组 $restaurantArray 内爆到字符串中,使用逗号作为分隔符;用括号覆盖这个字符串;并使用结果字符串作为查询的输入。 类似的东西
// uncomment if data needs to be sanitized
// $restaurantArray = array_map("mysql_real_escape_string", $restaurantArray);
$input = '(' . implode(',', $restaurantArray) . ')';
$query = "SELECT from foo WHERE id IN $input";
【讨论】:
易受注入攻击.. 如果数组直接来自数据库,如何容易受到此类攻击! 在 DB 查询之前使用这个 sn-p。 foreach($restaurantArray as $key=>$value) $restaurantArray[$key] = mysql_real_escape_string($value); 你永远不能假设这些事情。一切都必须逃脱。期间。 你会使用 $query = "SELECT from foo WHERE id IN $input ORDER BY RAND() LIMIT 3";以上是关于基于数组的SQL查询[重复]的主要内容,如果未能解决你的问题,请参考以下文章