Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

MySQL'e veri aktarmak...

Konu, 'Veritabanları' kısmında Sahin tarafından paylaşıldı.

  1. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0
    Ama .dat ya da herhangi bir text bazlı veri tabanında biriken bilgileri aktarmak nasıl yapılır.

    Mesela;

    isim | soyisim | email | mesaj

    gibi...
     
  2. mkarabulut

    mkarabulut Misafir

    mysql'in text dosyaları dump etme/dump edilen dosyaları yükleme özelliği var ama,sadece kendi formatında olanları...

    Daha doğrusu mysql varolan kayıtların sql sorgularını bir text dosyaya atıp, dosyadan yükleme yapıyor.

    Burada ise tamamen değişken yapılı text dosyalar söz konusu olduğu için bunu yapmanın tek yolu, dosyanın yapısını okuyup bunu mysql'e yükleyecek bir program yazmak.

    Mesela
    Ali | Veli | İstanbul
    Mustafa | Karabulut | G.antep

    dosya olsun, '|' alanları '\n' ise kayıtları ayırıyor...
    PHP:
    /*
     Coded By : M.K.
     Stand firm in the straight path as you are commanded
     Use at your own explosion risk and such risks
    */
    function yukle($dosya,$alan_ayrac="|",$kayit_ayrac="\n"){
                 
    //dosya içeriğini oku
                 
    $dosya=fopen ($dosya,"r");
                 
    $icerik =fread ($dosya,getfilesize($dosya));
                 
    fclose ($dosya);
                
    //kayıtları diziye at 
                
    $records explode ($icerik,$kayit_ayrac); 
                
    //veritabanı bağlantısı yapıldığı farzediliyor
                //her kayıdı teker teker vt ye at
                
    foreach ($records as $record){
                            
    //alanları al 
                            
    $fields=explode($record,$alan_ayrac);
                            
    $sorgu="INSERT INTO tablo VALUES (";
                            
    //her alan için uygula
                            
    foreach ($fields as $field)
                                                     
    $sorgu .="'$field',"
                            
    //sondaki virgülü al
                            
    $sorgu substr($sorgu,-1);
                            
    $sorgu.=")";
                                      
                            
    mysql_unbuffered_query($sorgu); 
                }  
    }
    Bu kod aşağı yukarı bu işin nasıl yapılacağını gösteriyor, düzenlemeler ile daha esnek hale getirilebilinir
     
    Son düzenleme yönetici tarafından yapıldı: 19 Temmuz 2002
  3. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0
    Tabi bunu yapmadan önce veritabaninda bir tablo olusturuyoruz degilmi?

    Kac basamak gerekiyorsa o kadar bölümü olan bir tablo. Sonra select komutu ile buraya aktardiklarimizada göz atabiliriz degil mi?
     
  4. mkarabulut

    mkarabulut Misafir

    Tüm sorularınıza cevabım 'evet' :D
    Aynen dediğiniz gibi olacak.
     
  5. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0
    Şimdi ben çaktırmadan birşeyler yapıyorum :D

    Mesela açtık diyelim bir tablo 15 bölümden oluşuyor ama bazılarının özellikleri hakkında hiç bir fikrim yok boş kalabilirmi?

    Peki tablo olayınıda hallettik elimizde bilisim.dat isimli bir veri dosyasi var bundan verileri tabloya nasil aktaracagiz?

    Aslında bunlar simdilik olayın kolay tarafları. Asıl aktardıktan sonra başlıyacak sorular :)
     
  6. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0