Php 有效地动态where语句
所以我想知道使用WHERE搜索数据库最有效的方法是什么 如果我有var,比如Php 有效地动态where语句,php,mysql,Php,Mysql,所以我想知道使用WHERE搜索数据库最有效的方法是什么 如果我有var,比如 $conditions = "1,3,4,9" 每个int都引用表的主id。那么,从mysql中选择这些行的最佳方法是什么呢 for($i = 0; $i < strlen($conditions); $i++) { if($conditions[$i] == ',') continue; $conn->prepare('select * FROM table WHERE id= $i');
$conditions = "1,3,4,9"
每个int都引用表的主id。那么,从mysql中选择这些行的最佳方法是什么呢
for($i = 0; $i < strlen($conditions); $i++)
{
if($conditions[$i] == ',')
continue;
$conn->prepare('select * FROM table WHERE id= $i');
}
for($i=0;$iprepare('select*FROM table,其中id=$i');
}
我正在考虑做上面的事情,但是我相信会有比这更有效的方法
另外,我知道上面的代码不起作用,我错了,这只是我当时写的一个例子
谢谢你的建议 您要查找的函数是find_in_set:
select * from ... where find_in_set($conditions, id)
将字符串转换为数组:
$conditions = explode(",","1,3,4,9");
foreach($conditions as $id){
$conn->prepare('select * FROM table WHERE id= $id');
}
在这种情况下,请使用在集合中查找,或者您可以在queryRight中使用
,如果您使用的是数组而不是在else中使用,请为逗号分隔的字符串使用在集合中查找分解$conditions
,然后在
组中构建一个。准备好的声明的正确方式: