Tam veya dinamik dosya yolu verilen bir dosyadaki alt alta listelenmiş SQL sorgularını döngü aracılığıyla satır satır çalıştıran PHP kodudur.
<?php
//---------------------------------------------
//MySQL veri tabanı bağlantısı oluştur.
//---------------------------------------------
$sunucu = "localhost";
$kullanici = "root";
$parola = "";
$db = "test";
ini_set('max_execution_time', 0);
try {
$db = new PDO("mysql:host=" . $sunucu . ";" .
"dbname=" . $db,
$kullanici,
$parola);
} catch ( PDOException $e ){
print $e->getMessage();
}
$db->query("SET CHARACTER SET utf-8");
$dosya_yolu = 'sorgu.sql';
//---------------------------------------------
//Dosyayı aç.
//---------------------------------------------
$dosya = fopen($dosya_yolu, "r");
//---------------------------------------------
//Dosya açılsın, bu yüzden 0.5 saniye
//bekle, hemen alt satıra geçme.
//---------------------------------------------
sleep(0.5);
//---------------------------------------------
//Dosya içeriğini oku.
//---------------------------------------------
$sql_icerik = fread($dosya, filesize($dosya_yolu));
//---------------------------------------------
//Dosyadan satır satır veri çekmek
//için yeni nesne oluşturduk.
//Çünkü her satırda bir sorgu var.
//---------------------------------------------
$ds = new SplFileObject($dosya_yolu);
try {
//---------------------------------------------
//Satırlar bitene kadar çalışsın.
//---------------------------------------------
while (!$ds->eof()) {
//---------------------------------------------
//$veri_ekle değişkenini her satırdaki sorgu için
//prepare() edip çalıştıracağız, böylece veri eklenecek.
//---------------------------------------------
$veri_ekle = $db->prepare($ds->fgets());
$veri_ekle->execute();
}
//---------------------------------------------
//Satırlar bittiğinde aşağıdaki nesneleri
//sıfırlıyoruz, böylece yeni dosya için
//hazırlamış oluyoruz.
//---------------------------------------------
$ds = null;
$dosya = null;
} catch ( PDOException $e ){
print $e->getMessage();
}
?>
Konu ile ilgili örnek dosyayı bu bağlantıdan indirebilirsiniz.