Witajcie,

Mam taki oto skrypt, który służy do importu plików SQL do bazy danych. Łącznie są 4 pliki. Obecny skrypt działa, ma jednak pewien mankament. Otóż całość wygląda tak:

Baza OFFLINE -> Generowanie plików SQL -> upload na serwer -> import SQL do bazy online

Za każdym razem baza offline generuje pliki sql ze wszystkimi wierszami. Także jak można się domyślić, istnieje spore zagrożenie załadowania do bazy online duplikatu. Dla przykładu - ile razy odświeżę skrypt, tyle razy wszystkie dane zostaną załadowane - także mogę mieć wiele duplikatów. Wszystkie tabele, do których ładuję dane mają unikalne id (liczbowe, z ustawionym A I). Mimo to, wiersze powielają się ;/ jak tego uniknąć?

  1. <?php
  2.  
  3. $mysql_host = 'localhost';
  4. $mysql_username = '';
  5. $mysql_password = '';
  6. $mysql_database = '';
  7.  
  8. try
  9. {
  10. $db = new PDO('mysql:dbname='.$mysql_database.';host='.$mysql_host,$mysql_username,$mysql_password);
  11. $sql = implode(array_map(function ($v) {
  12. return file_get_contents($v);
  13. }, glob(__DIR__ . "/*.sql")));
  14.  
  15. $qr = $db->exec($sql);
  16. echo "Import action - 100% successfull";
  17. }
  18. catch (PDOException $e)
  19. {
  20. echo 'Connection failed: ' . $e->getMessage();
  21. }
  22. ?>
  23. <BR />