我想用数组($ valueIDArray)搜索数据库的row(venue_id)。
这是正确的方法吗?
$query = "SELECT * FROM venue_booking
WHERE venue_id = $valueIDArray";
答案 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 ;;