Простейшим способом было бы проверить, дал ли MySQL свой идентификатор, при условии, что вы используете AUTO_INCREMENT
:
$values = [
[
'id' => 1,
'sort_order' => 1,
],
[
'sort_order' => 2,
],
];
foreach ($values as $i => $value) {
if (array_key_exists('id', $value)) {
// INSERT
$values[$i]['id'] == ""; // result from ^
} else {
// UPDATE WHERE id == $value['id']
}
}
В качестве альтернативы, если вы создаете свои идентификаторы, вы можете посмотреть на REPLACE
, который делает то, что вам нравится, но со стороны MySQL.
К вашему сведению : посмотрите подготовленные операторы - вам не следует использовать значения напрямую, как в PHP, поскольку люди могут использовать SQL-инъекцию для изменения ваши намерения.