0

假设我有一个包含 30 个对应于音乐流派的复选框的表单(它提交给 PHP 表单处理程序)。

我有一个包含流派字段的艺术家表。构建查询的最佳实践是什么:

从艺术家中选择名称,其中genreId = 1 或genreId = 2 或。. . 等等等等。genreId 是从复选框中选择的。

我知道我可以在 PHP 中动态构建 WHERE 子句,但我习惯于使用准备好的语句和存储过程。我应该怎么办?

4

1 回答 1

2

您可能希望IN()在 where 子句中使用如下:

WHERE genreId IN (1,2,3)

不幸的是,实际上并没有一个好的解决方案来以参数化的方式使用它。你只需要去老学校:

$query = 'SELECT ... WHERE genreId IN (' . implode(',', $genreId_array) . ')';

我想虽然你可以做这样的事情来构建一个参数化的方法:

$query = 'SELECT ... WHERE genreId IN (';
$array_length = count($genreId_array);
for ($i = 0; $i < $array_length; $i++) {
    $query .= '?,';
}
$query = rtrim(',',$query) . ')';
于 2013-07-03T22:33:40.977 回答