PHP 将条件附加到准备好的语句

我正在尝试使用准备好的语句来搜索一个我不知道需要搜索多少个参数的数据库。因此,以下示例检查列“标题”是否包含两个变量


$stmt = $con->prepare("SELECT title FROM news WHERE title LIKE %?% AND title LIKE %?%");

如果我想检查第三个变量怎么办。我可以附加到准备好的语句吗?到目前为止,我唯一的解决方案如下,这太可怕了,因为我不知道最大变量数。


$no_of_variables = 3;


if($no_of_variables == 1){

    $stmt = $con->prepare("SELECT title FROM news WHERE title LIKE %?%");

} else if($no_of_variables == 2){

    $stmt = $con->prepare("SELECT title FROM news WHERE title LIKE %?% AND title LIKE %?%");

} else if($no_of_variables == 3){

    //etc

}

如果可能的话,我将不胜感激使用准备好的陈述的更好方法。谢谢


波斯汪
浏览 69回答 1
1回答

忽然笑

通过重复条件-次来构造准备好的语句$no_of_variables:$where = implode(" AND ", array_fill(0, $no_of_variables, "title LIKE %?%"));$stmt = $con->prepare("SELECT title FROM news WHERE {$where}");
打开App,查看更多内容
随时随地看视频慕课网APP