Php 有效地动态where语句

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');

所以我想知道使用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');
}
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
,然后在
组中构建一个
。准备好的声明的正确方式: