在让用户搜索时,经常遇到,有多个可选的搜索条件。
比如有三个搜索条件:username lid bid
一般的应用场景是这样的:
用户如果都不填,就搜索出全部。
用户如果只填username 和bid,就忽略lid,以此类推。
如果必须手写SQL语句(比如sql太复杂,没法用查询构造器),那么为了安全(防注入),最好使用预处理,而不是直接去拼接WHERE子句。
解决方法如下:可以设置用户在不选择、不填写某个字段时,它的值就为’all'
代码中用的php和CI框架,用其它语言和框架的,也可以参考
我是初学,水平有限,有更好的方法,还请赐教,谢谢。