Odbc Converter ile Access ( MDB ) Veritabanınızda Bulunan Verileri - Çok Kısa Bir Sürede Tek Tusla Programa vs Ihtiyac Kalmadan Mysql’e Geçirmeyi Sağlar..
** Tek Sorun.. Veritabanınızda 30 Karakteri Aşkın Bir Tablo Ismi veya Column Ismi Bulundurmamanız Şartı ile Çünkü.. ODBC 30′u Askın Karakter Isimlerini Filtreleme Edemiyor..
ASP yi Bu Yuzden Bırakıp PHP ye Geçtim.. Herşeyimi Kısıtladı Cunku.. ama Gordugum Kadarıyla PHP ye Geçişte Bile ODBC Saolsun Yine Kısıtladı. Geçenlerde ODBC nin Yeni Sürümü Çıktı Tekrardan Kontrol Ettim Fakat Durum Aynı.. 2004 Nerede 2008 - 09 Nerede O Gunden Bu Yana ODBC nin Bu Ufak Problemini Ortadan Kaldırmamıslar.. Eh Micro’dan da Bu Beklenir Pek Tabii ki Umarım Isinize Yarar.. ^.^
PS: ODBC ye Dsn Adlarını Atamayı Unutmayınız..
PHP- Kodu:
<?php
$odbc=odbc_connect('accessdatabase','kullanıcıadi','password');
$mysql=mysql_connect('localhost','root','password');
mysql_select_db('db_adi' , $mysql);
$tablelist=odbc_tables($odbc);
$r=odbc_fetch_row($tablelist);
while (odbc_fetch_into($tablelist, $r, 1)) {
if (strtolower($r[3])=='table') {
$q="select * from {$r[2]}";
$odbcset=odbc_do($odbc,$q) or die("".odbc_errormsg());
while (odbc_fetch_into($odbcset, $row, 1)) {
$c="insert into {$r[2]}(".odbc_field_name($odbcset,1);
for ($i=2;
$i <= odbc_num_fields($odbcset);
$i ++) {
$c .= ",".odbc_field_name($odbcset,$i);
}
if (is_numeric($row[0])) {
$c.=") values(".$row[0];
} else {
$c.=") values('".$row[0]." - ";
}
for ($i=1; $i {
if (is_numeric($row[$i])) {
$c .= ",".$row[$i];
} else {
$c .= ",'".$row[$i]."'";
}
}
$c.=")";
#echo $c."
\\n";
if (mysql_query($c,$mysql)) {
echo "Basarili
\\n";
} else {
die(mysql_error());
}
}
}
}
mysql_close($mysql);
odbc_close($odbc);
?>