我正在尝试创建一个如下所示的 SQL 语句:
SELECT * FROM `table` WHERE `attribute` LIKE %variable_1% AND `attribute` LIKE %variable_2% AND ... AND `attribute` LIKE %variable_n%
我有变量:variable_1,variable_2,...,variable_n 存储在一个数组中,为了创建上面提到的语句,我将使用 foreach 循环,如下所示:
$sql = 'SELECT * FROM `table` WHERE ';
$variables_array; // this array will contain all the variables mentioned above, the variables are numerically indexed
$total_variables = count($variables_array);
foreach($variables_array as $key => $value){
$sql .= '`attribute` LIKE "%'.$value.'%" ';
if($key != ($total_variables - 1) ){
$sql .= ' AND ';
}
}
我的问题是,如何在我的 foreach 循环中分别使用 PDO 和 PDO 语句对象的 'prepare' 和 'bindValue' 方法,以便每个新插入的变量都可以安全使用,就像它们传递给'prepare' 方法,然后使用 'bindValue' 插入到语句中。或者我需要使用其他一些方法吗?