Простой способ - просто попробовать обновления. Если они не приводят к чистым изменениям данных, это нормально. «Измененные строки» будут равны нулю от такого изменения.
Предполагая, что у вас есть соединение PDO с вашей базой данных в переменной $pdo
, а $api_result
- это массив строк JSON, как вы показали, я бы кодировал его так:
$data = json_decode($api_result, true);
$sql = "UPDATE mytable SET name=:name, date=:date WHERE id=:date";
$stmt = $pdo->prepare($sql);
$rowCount = 0;
foreach ($data as $row) {
$stmt->execute($row);
$rowCount += $stmt->rowCount();
}
echo "$rowCount rows updated.\n";
Если результат JSON из вашего API сформирован неправильно, у него будут проблемы. Например, если есть дополнительные поля, помимо тех, которые у вас есть в качестве заполнителей в вашем запросе SQL. Или, если массив объектов JSON не ограничен [ ]
.