我正在尝试使用准备好的语句来搜索一个我不知道需要搜索多少个参数的数据库。因此,以下示例检查列“标题”是否包含两个变量$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}如果可能的话,我将不胜感激使用准备好的陈述的更好方法。谢谢
1 回答
忽然笑
TA贡献1806条经验 获得超5个赞
通过重复条件-次来构造准备好的语句$no_of_variables:
$where = implode(" AND ", array_fill(0, $no_of_variables, "title LIKE %?%"));
$stmt = $con->prepare("SELECT title FROM news WHERE {$where}");
- 1 回答
- 0 关注
- 68 浏览
添加回答
举报
0/150
提交
取消