将条件附加到当前查询

时间:2018-03-01 16:24:27

标签: php mysqli

例如,我们对else (q1 == "60+") score = 10; 进行if查询:

mysqli

并希望根据select向上述查询添加一些额外的$sql = "SELECT * FROM table WHERE cat = 1"; ,我尝试过这样的事情:(这只是示例,而不是我的原始代码) < / p>

query

不是这一个,我几乎还有10个query string想要追加到当前$keyw = $_GET["k"]; if($keyw){ $cleanKeyw = mysqli_real_escape_string($connection, $keyw); $addQ= "AND name LIKE '%$cleanKeyw%' OR text LIKE '%$cleanKeyw%'"; } else { $addQ= ""; } $sql = "SELECT * FROM table WHERE cat = 1 $addQ";

我想添加statment如果设置了query查询字符串,它可以正常工作,但我想确定,这样做是否安全或正确?因为它是基于我的逻辑而我是query的新手,并且不知道有技术方法可以做到这一点吗?

另外我想知道有没有办法通过k

执行此操作

1 个答案:

答案 0 :(得分:1)

不幸的是,大多数答案都过于宽泛。没有正确或错误的方式,你已经逃脱了你的意见(这很棒)。

您可以考虑将您的轮胎构建为数组,然后将它们拼接在一起。

(A, B)

然后,您可以随时添加更多$wheres = []; $wheres[] = 'cat = 1'; if ($keyw) { // escape etc $wheres[] = 'name LIKE '%$cleanKeyw%' OR text LIKE '%$cleanKeyw%'' } $wheres = implode(" AND ", $wheres); $sql = "SELECT * FROM table WHERE $wheres";