Вы не можете действительно объединить его в один запрос, используя UPDATE
, так как значение и условие входят в пары (значение и условие различны для каждой обновляемой строки).
Существует хакерское исправление с INSERT INTO..ON DUPLICATE KEY UPDATE
, но я бы воздержался от его использования - см. Вопрос , связанный с RiggsFolly в комментариях .
При использовании подготовленногооператора, вы можете выполнить один и тот же запрос несколько раз (в любом случае вам придется выполнять запрос несколько раз, даже с mysqli_query()
, но это оптимизировано и более безопасно при использовании подготовленного оператора).
$sql = "UPDATE images SET order_id=? WHERE id=?";
$stmt = $connection->prepare($sql);
foreach($array as $key=>$item){
$stmt->bind_param("ss", $item['order_id'], $item['id']);
$stmt->execute();
}
$stmt->close();
Если ваши идентификаторы являются целыми числами, а не строками, замените соответствующие s
на i
.