PHP MySQL如何在一个查询中检索匹配多个不同值的记录
我在php上有一个数组,其中包含我想要检索的记录的一些ID,我正在通过一个循环执行查询几次以获取它们PHP MySQL如何在一个查询中检索匹配多个不同值的记录,php,mysql,sql,query-optimization,Php,Mysql,Sql,Query Optimization,我在php上有一个数组,其中包含我想要检索的记录的一些ID,我正在通过一个循环执行查询几次以获取它们 foreach ($receivers as $id) { $sth = $this->db->prepare("SELECT phone FROM contact WHERE idcontact = ?"); $sth->execute(array($id)); $res= $sth->fet
foreach ($receivers as $id) {
$sth = $this->db->prepare("SELECT phone FROM contact WHERE idcontact = ?");
$sth->execute(array($id));
$res= $sth->fetch();
echo $res['phone'] ;
}
我怎样才能在一个查询中完成它,这样我就不会用数百个查询来打扰数据库了
$sth = $this->db->prepare("SELECT phone FROM contact WHERE idcontact IN (" . implode(",",$receivers) . ")");
资料来源:
更好的来源:您可以在()中使用带有查询参数的谓词:
$placeholders = implode(",", array_fill(1, count($receivers), "?"));
$sth = $this->db->prepare("SELECT phone FROM contact WHERE idcontact IN ($placeholders)");
$sth->execute($receivers);