如何使用数组搜索数据库

时间:2014-05-13 18:40:14

标签: php sql arrays

我想用数组($ valueIDArray)搜索数据库的row(venue_id)。

这是正确的方法吗?

$query = "SELECT * FROM venue_booking
WHERE venue_id = $valueIDArray";

4 个答案:

答案 0 :(得分:0)

您的代码容易受到SQL注入的攻击;您通常使用prepared statements来阻止这些攻击。

如果您的意思是“这个SQL语句在语法上是否有效?”是的,但不是数组。你需要使用IN语句;见Passing an array to a query using a WHERE clause

答案 1 :(得分:0)

$query = "SELECT * FROM venue_booking
          WHERE venue_id IN (" . implode(", ", $valueIDArray) . ")";

答案 2 :(得分:0)

假设$valueIDArray值为数字,implode为逗号分隔列表并使用IN子句:

$values = implode(',', $valueIDArray);
$query  = "SELECT * FROM venue_booking WHERE venue_id IN ($values)";

如果文字等需要引号:

$values = "'". implode("','", $valueIDArray) ."'";

答案 3 :(得分:0)

首先使用逗号分隔的ID列表,然后使用SQL的IN子句。

$ comma_separated = implode(",",$ valueIDArray);

$ query =" SELECT * FROM venue_booking WHERE venue_id in($ comma_separated)&#34 ;;