PHP ile Data Transferi

PHP ile Farklı Sunucular Arasında Data Transferi,

Bazen bir sunucu üzerindeki databaseden , farklı bir sunucu üzerindeki
database’e data taşımanız gekebilir. Mesela xxx.xxx.xxx.xxx ip’li
sunucu üstündeki customer tablosundaki kayıtları, yyy.yyy.yyy.yyy
sunucusu üstündeki customer tablosuna insert etmemiz gerekiyor.
Üstelik bu işi hergün yapmamız gerekiyor. Düşünün, tam bir vakit kaybı.
Hergün backup al. Bu backup’ı sunucular arasında elle transfer et.
(.zip’le ,.rar’la vs vs) Sonra bu backup’ı yeni sunucu üzerine restore et.
Bi dünya iş. İşte php ile bu işi hem Çok kısa bir süre iÇinde hem de
otomatik olarak hergün kendiliğinden yapılmasını sağlayabilirsiniz.

şimdi bir örnek uygulama yapalım:

// x Serverımıza connection yapıyoruz.
$xServer=mysql_connect(‘xxx.xxx.xxx.xxx’,’user’,’password’);
mysql_select_db(sales);
// y Serverımıza connection yapıyoruz.
$yServer=mysql_connect(‘yyy.yyy.yyy.yyy’,’user’,’password’);
mysql_select_db(sales);

// x serverımızdan dataları Çekiyoruz.

$sql=”select id,adi,soyadi,tutar from customer”;

// mysql_query() fonksiyonu ile sql’li Çalıştırıp sonucu $result değişkenine atıyoruz.

$result=mysql_query($sql,$xServer);
// Sql sonucunda gelecek her satır iÇin dönecek while döngüsü kuruyoruz.
// Ve gelen her satır iÇin dataları teker teker değişkenlere atıyoruz.

while($row=mysql_fetch_assoc($result)){

$customer_id=$row[‘id’];
$customer_adi=$row[‘adi’];
$customer_soyadi=$row[‘soyadi’];
$customer_tutar=$row[‘tutar’];

// Ve son olarakta yServer üstündeki customer tablosuna xServer üstünden
//Çektiğimiz datayı insert ediyoruz.

$sql_insert=”insert into customer(id,msisdn,operator_id)
values (“.$customer_id.”,”.$customer_adi.”,”.$customer_soyadi.”,”.$customer_tutar.”)”;

mysql_query($sql_insert,$yServer);

}
?>

Daha sonra dosyayı dataTasi.php olarak kaydedin ve konsoldan
php -f dataTasi.php komutunu verirseniz php scriptiniz Çalışmış
olacak. Bu işi biz hergün belli bir saatte otomatik olarak yapsın
istiyorsanız, bunu serverınız windows ise; zamanlanmış göreve
atmalısınız. Eğer serverınız linux ise; cron’a atmanız gerecek.

Bir sonraki makalelerde görüşmek dileğiyle,

Tayfur BÖLER
Database Administrator