• 15-06-2019, 00:16:43
    #1
    Hazırladığım sistemde versiyon geçişi yapacağım ve veritabanında değişiklikler var eski sql dosyası elimde var şuanda onu php ile okuyup ayıklama yapmak istiyorum. Bunu nasıl yapabilirim?
    TamirBank.Com - ECD Apartman Yönetimi
  • 15-06-2019, 00:35:56
    #2
    Hocam yardım etmek istedim ama yorgunluktan PC ile uğraşamıyorum. Yarına kadar forumdan bir arkadaş yardımcı olmazsa yarın PM ile bana ulaşırsanız yardımcı olmaya çalışırım.
  • 15-06-2019, 00:42:59
    #3
    siz tam olarak ne demek istiyorsunuz

    eski sistemdeki tüm sorguları öğrenmekmi biraz detay yazarsanız yardımcı olalım
    -------- Codeigniter - PHP çözümleri ve Uygulamaları --------
    ------------------- PHP - Web Site Tamircisi --------------------
    ---- Web siteleri Penetrasyon Testleri ve Güvenlik Paketleri ---
    -------- Profesyonel internet erişim sayfaları ve CMS ler -------
    ----------------- Özel PHP ve Phyton dersleri ------------------
  • 15-06-2019, 05:20:51
    #4
    Sorun: Veri tabanı tablolarında farklı bir yapıda bulunan verileri, yeni bir tablo sistemine aktarmak.
    Çözüm Mantığı: Veri tabanına bir "SELECT" sorgusu yapılarak mevcut yapıdaki veriler bir değişkene aktarılır. Bu değişkendeki değerler, yeni yapıya olması gerektiği yapıda "INSERT" sorgusu ile aktarılır.

    Veri tabanı işlemlerini kolay halledebilmeniz için tavsiyem; ThingEngineer/PHP-MySQLi-Database-Class kütüphanesi, bir klasör oluşturup, bu dosyaları indirip, içine atın.

    Tablo Varsayımı
    - uyeler Tablosu
    - id - kullaniciadi - sifre - firmaadi - firmano - firmayetkili - kayittarih - personelad - personelsoyad
    Yeni Tablo Yapısı Varsayımı
    - personel
    - id - personelad - personelsoyad - kullaniciadi - sifre - kayittarih
    
    -firmalar
    - id - firmaadi - firmano - firmayetkili - kayittarih
    1.Adım: Dosya Oluşturmak
    Bir ana klasör (ana dizin) oluşturduk örn: veriaktarim, içerisine db adında bir klasör daha oluşturup thingengineer'ın kütüphane dosyalarını indirip attık. Ana dizinimizde (veriaktarim) index.php dosyası oluşturuyoruz.

    2.Adım: Kütüphane Dosyalarını Sayfaya Ekleyin
    <?php require_once 'db/MysqliDb.php';
    3.Adım: İki Adet Veri Tabanı Bağlantısı Oluşturun
    Bu veri tabanı bağlantılarından birincisi mevcuttaki verilerin alınacağı veri tabanı, diğeri ise yeni tablo yapısının oluşturulduğu, boş, örnek bir veri tabanının bağlantısı olacaktır.
    $currentDB = new MysqliDb ('localhost', 'DBKullaniciAdi', 'Sifre', 'DBAdi');
    $newDB = new MysqliDb ('localhost', 'DBKullaniciAdi', 'Sifre', 'DBAdi');
    4.Adım: Güncellenecek Tablolardaki Verileri Çekin ve Yeni Tablolara INSERT Edin
    Örnek için tek tablo ile işlem yaptım. Birden fazla tablo varsa hepsini aynı mantıkla tek dosyada halledebilir ya da teker teker kontrollü bir işlem yapabilirsiniz. Tablodaki veri sayıları yüksekse tavsiyem teker teker yapmanız olur.

    $personelData = $currentDB->get('uyeler', null, 'id, personelad, personelsoyad, kullaniciadi, sifre, kayittarih');
    $firmaData = $currentDB->get('uyeler', null, 'id, firmaadi, firmano, firmayetkili, kayittarih');
    
    $personelResult = $newDB->insertMulti('personel', $personelData);
    $firmaResult = $newDB->insertMulti('firmalar', $firmaData);
    
    echo 'Personel Tablosuna Başarıyla Eklenen IDler:', print_r($personelResult).PHP_EOL;
    echo 'Firma Tablosuna Başarıyla Eklenen IDler:', print_r($firmaResult);
    index.php Son Hali
    <?php require_once 'db/MysqliDb.php';
    $currentDB = new MysqliDb ('localhost', 'DBKullaniciAdi', 'Sifre', 'DBAdi');
    $newDB = new MysqliDb ('localhost', 'DBKullaniciAdi', 'Sifre', 'DBAdi');
    $currentDB->autoReconnect = true;
    $newDB->autoReconnect = true;
    $personelData = $currentDB->get('uyeler', null, 'id, personelad, personelsoyad, kullaniciadi, sifre, kayittarih');
    $firmaData = $currentDB->get('uyeler', null, 'id, firmaadi, firmano, firmayetkili, kayittarih');
    $personelResult = $newDB->insertMulti('personel', $personelData);
    $firmaResult = $newDB->insertMulti('firmalar', $firmaData);

    Mümkünse CLI'dan çalıştırın, değilse HTTP isteği ile çalıştırın. Her iki durumda da sunucudaki execution time değerini -1 (sınırsız) yapmak ve memory_limit yükseltmek, yüksek verilerde uygulamanız gereken adımlardandır.