我有一个这样的日子,MySQLi编写条件语句
我有四个可能的变量,只有其中一个是必需的。我的问题是,如果有可能显示或不显示的部分查询,我该如何准备一个语句/构造sql查询。
这样的事情,我想:
sql = "SELECT * FROM dogs WHERE name = ?"
if(isset($dogid)) {
sql .= "AND WHERE id = ?";
}
}
if(isset($dogcolour)) {
sql .= "AND WHERE colour = ?";
}
我的大脑完全打破了,我想,必须有一个更好的方法比使用类似$ dogID =“true”以做准备;在每个if中,然后用一堆if语句绑定它。
MySQL显然有办法处理这个,我只是不记得那是什么。
谢谢。
留出空间,它出来'WHERE name ='blah'AND..'但并没有什么错有条件构建查询 – Mihai
严,我不认为有一个问题与建设它,但我认为必须比做$ bind_params。=“s”,$ bind_params。=“i”;等等,以及$ bind_vars。='$ id'; $ bind_vars。=“$ color”等全部在不同的if(){}中 - –
如果你正在用低级别的'mysqli'抨击,这是实现它的方法。您可以通过在数组中组合条件来简化它,然后在最后一步使用“AND”将它们连接在一起。更好的方法是使用像[Laravel](http://laravel.com/)这样的[开发框架](http://codegeekz.com/best-php-frameworks-for-developers/)具有强大的ORM,简化了描述过滤器的方法。 – tadman