我正在尝试编写查询而不使用任何类型的循环来从数据库中获取值。我有一个数组$ guest_list_guest_ids,它存储了我想要的所有ID。
我不太确定如何在没有循环的情况下完成此操作,我每次都会根据我正在解析的ID更改查询。
$query = 'SELECT * FROM guest_list_guests' . implode(',', $guest_list_guest_ids);
echo $query;
非常感谢任何帮助或意见。
答案 0 :(得分:0)
这假设您正在使用PDO,但应该适应MySQLi:
// the frame of the query we're going to prepare
$query_frame = 'SELECT * FROM guest_list_guests WHERE id IN (%s);'
// generate a placeholder string, one for each element in the array of ids
$placeholders = implode(',', array_fill(0, count($guest_list_guest_ids), '?'));
// make the query string, eg: SELECT * FROM guest_list_guests WHERE id IN (?,?,?,?,?);
$query = sprintf($query_frame, $placeholders);
// prepare
$stmt = $dbh->prepare($query);
// execute
$stmt->execute($guest_list_guest_ids);
// get results
var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));