我正在尝试创建一个类似于这样的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'插入到语句中。或者我需要使用其他一些方法吗?