query("SELECT * FROM x_pays"); $pays = $stmt->fetchAll(); // Préparation de la requête d'insertion $insertQuery = "INSERT INTO x_pays ( id, code, fk_continent, fk_devise, libelle, chk_active ) VALUES ( :id, :code, :fk_continent, :fk_devise, :libelle, :chk_active ) ON DUPLICATE KEY UPDATE code = VALUES(code), fk_continent = VALUES(fk_continent), fk_devise = VALUES(fk_devise), libelle = VALUES(libelle), chk_active = VALUES(chk_active)"; $insertStmt = $targetDb->prepare($insertQuery); // Compteurs $successCount = 0; $errorCount = 0; // Traitement de chaque pays foreach ($pays as $pay) { try { // Mappage des champs entre les deux structures $id = isset($pay['rowid']) ? $pay['rowid'] : $pay['id']; $chkActive = isset($pay['active']) ? $pay['active'] : (isset($pay['chk_active']) ? $pay['chk_active'] : 1); // Préparation des données pour l'insertion $paysData = [ 'id' => $id, 'code' => $pay['code'], 'fk_continent' => $pay['fk_continent'], 'fk_devise' => $pay['fk_devise'], 'libelle' => $pay['libelle'], 'chk_active' => $chkActive ]; // Insertion dans la base cible $insertStmt->execute($paysData); $successCount++; } catch (Exception $e) { $errorCount++; echo "Erreur lors de la migration du pays ID {$id}: " . $e->getMessage() . PHP_EOL; } } echo "Migration terminée. Succès: $successCount, Erreurs: $errorCount" . PHP_EOL; // Fermer le tunnel SSH closeSshTunnel(); } catch (Exception $e) { echo "Erreur critique: " . $e->getMessage() . PHP_EOL; // Fermer le tunnel SSH en cas d'erreur closeSshTunnel(); exit(1); }