0

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

4

0 回答 0