(Mise à niveau vers une réponse )
Ressemble à ce bogue , qui est toujours ouvert après presque cinq ans; essayez plutôt :
while (true) {
try {
$row = $qry_bat->fetch(PDO::FETCH_ASSOC);
if (!$row) break;
$ins_db->execute(array(...));
$newOnes++;
}
catch (PDOException $e) {
if ($e->getCode() != 23000) {
echo '<span class="msg-alert">'.$e->getMessage().'</span>';
} else {
$doublons++;
}
}
}