这是在一个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。
答案 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);
}