使用PHP在一个MySQL查询中获取多行的最佳方法是什么?

时间:2014-04-22 11:26:24

标签: php mysql

这是在一个MySQL查询中获取多行的最佳方法。

我有一系列ID:

$id_array = array('34','341','342','334','344','354','3234','33234','3234','3234');

我想从我的mysql数据库中获取与这些id相关联的标题

我有两种方法:

1)示例

foreach($id_array as $id){
    $query = mysqli_query($con, "SELECT title FROM content WHERE id = '$id'");
    $id_db = mysqli_fetch_row($query);
    echo $id_db['title'];
}

2)示例

$query = mysqli_query($con, "SELECT title FROM content WHERE id = '$id_array[1]' AND id = '$id_array[2]' AND id = '$id_array[3]' AND 'id = $id_array[4]' AND id = '$id_array[5]'");

while($result = mysqli_fetch_assoc($query)){
    echo $result['title'];
}

我正在高负荷网站上工作,并希望使用最佳解决方案。 上面的代码并非100%完整,它只是一个原始实现的想法。 数组元素的计数可以是1到1k。

3 个答案:

答案 0 :(得分:2)

这个解决方案怎么样?

$ids = implode(',',array_map('intval',$id_array));
$query = mysqli_query($con, "SELECT title FROM content WHERE id IN ($ids)");
// ..

答案 1 :(得分:1)

在数组方法man中使用mysql。

答案 2 :(得分:0)

如果你想获得数组中的ID的标题:

$db = new mysqli('server', 'user', 'password', 'db');
$stmt = $db->prepare('select title form content where id = ?');
$stmt->bind_param('i', $i);
$stmt->bind_result($title);
$titles = array();
foreach($id_array as $a) {
  $i = $a;
  $stmt->execute();
  array_push($titles, $title);
}