Php 在和WHERE中,以字符串或数组形式传入变量
我有一个查询,它有一个where条件,有时条件可以是字符串,有时条件可以是数组。如果它是我需要在中使用的数组 该条件作为变量传入 最佳解决方案是什么:Php 在和WHERE中,以字符串或数组形式传入变量,php,mysql,Php,Mysql,我有一个查询,它有一个where条件,有时条件可以是字符串,有时条件可以是数组。如果它是我需要在中使用的数组 该条件作为变量传入 最佳解决方案是什么: 检查传入的变量是否为数组-如果不是,则将其放入数组中。然后始终运行IN搜索 更改运行的SQL,因此如果它是数组,则运行IN搜索,如果不执行WHERE搜索 在我看来。。。我认为最好的解决方案是第一条:检查是否是一个数组,如果不是,转换它。然后在一个“in”小条款中内爆。第二个将生成更多代码。只需将其转换为数组。如果有必要,Mysql会重写您的查询本
在我看来。。。我认为最好的解决方案是第一条:检查是否是一个数组,如果不是,转换它。然后在一个“in”小条款中内爆。第二个将生成更多代码。只需将其转换为数组。如果有必要,Mysql会重写您的查询本身,而无需输入
$var = array('test');
$sql = "SELECT * FROM `table` WHERE `id` " ? is_array($var) ? "IN (" . implode(',',$var) . ")" : " = " . $var;
或者干脆做:
$var = array('test');
if(!is_array($var)){
$var = array($var);
}
$sql = "SELECT * FROM `table` WHERE `id` IN (" . implode(',',$var) . ")";
随便你喜欢哪个。就性能而言,我会选择第一个。
In
在Where
子句中,它们不是排他性的。你的意思是=
和中的。第1版。看起来容易些。