PDA

Tam Sürümünü Görmek İçin : MySQL'e veri aktarmak...


Sahin
19/07/2002, 17:24
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...


mkarabulut
19/07/2002, 18:59
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...

/*
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

Sahin
19/07/2002, 19:04
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?

mkarabulut
19/07/2002, 19:11
Tüm sorularınıza cevabım 'evet' :D
Aynen dediğiniz gibi olacak.

Sahin
20/07/2002, 16:20
Ş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 :)

Sahin
20/07/2002, 18:03
http://mysql.turbolift.com/mysql/DBD_3.21.X.php3

şu sayfayıda buraya yazayım DBI/DBD API ile MySQL hakkında güzel bir kaynak...