MySql için .Mdb dosyanızdaki verileri nasıl aktarabiliriz bundan bahsetmek istiyorum.
Microsoft Access .mdb uzantlı veritabanı verileri Mysql aktarmak için algoritmik olarak 3 şeye ihtiyacımız var mdb bağlantısı - mysql bağlantısı - ve mysql veri yazma;
while döngüsü access dosyasındaki satırları alıp mysql satırlarına yazıyor işlemimiz tamamlanıyor. Bu mantıkta şöyle bir sorun yaşayabilirsiniz döngünüz uzar 2000-3000 veri hem okuyup hem yazacağı zman tarayıcınız zman aşımına uğrar (30 Sn) bu yüzden access (mdb) dosyanızı sıkıştırıp onarmanızı ve parçalar halinde yüklemenizi öneririm.
// Mysql Connect
$dbhost = "255.0.0.0";
$dbname = "tabloismi";
$dbuser = "kullanici";
$dbpass = "sifrem";
@mysql_connect($dbhost, $dbuser, $dbpass) or die("Database'e Baglanilamadi!");
@mysql_select_db($dbname) or die("Database Secilmedi!");
// Access Connect
$conn = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=dosyayolu-ve-dosyaismi.mdb", "", ""); // son iki "" tirnak aralarina kullanıcı adı ve şifre girilir varsa!
$res = odbc_exec($conn, "SELECT * FROM Products");
while( $row = odbc_fetch_array($res) ) {
$AccessFIRM=iconv("ISO-8859-9","UTF-8",$row["AccessFIRM"]); // Access deki yazılar türkçe kararkterli mysql de ise utf 8 tutuyorsak bu şekilde kayıt yaparız.
$add = mysql_query("INSERT INTO invitations (FIRM , LINK , SIZE) VALUES ('".$AccessFIRM."' , '".$row["AccessLINK"]."' , '".$row["AccessSIZE"]."')");
// $row access deki tablomuzun degişkeni
// mesela bu satıra echo $row["AccessFIRM"]." eklendi"; // yazarsak mysql e aktardığı her satırı ekrana yazar
}
echo "Yukleme Tamamlandi.";
Not: Genel kullanım mantığı olarak .mdb dosyanızı Windows bir hostinge yükleyerek izinleri veriyoruz (777) ardından yukarıdaki kodları bir php dosyası yapıp çalıştırıyoruz herhangibir domaindeki uzak bilgisayarda $dbhost = "255.0.0.0"; ip adresini belirttiğimiz mysql e aktarımı yapmış oluyoruz. Kısaca Access deki Products tablodaki bilgileri al mysqldeki invitations tablosuna yaz.
Konu (126) ile ilgili admin @ limitsizbilgi.com adresine E-mail gönderebilirsiniz. İsa Şahintürk