Php'de mdb bağlantısı

Asp'den Php'ye ilk geçtiğim zamanlarda veritabanı olarak MySQL yerine mdb kullanmak istemiş ve başarılı olamamıştım.

Geçenlerde eski bir veritabanını MySQL'e aktarmak için tekrar Access ile oluşturulmuş bir mdb dosyasına bağlanmayı denediğimde, aşağıdaki kodlarla bunu başarabildim(WampServer kullandığımı belirteyim).

<?php ob_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="tr">
<head>
  <title>Access Bağlantısı</title>
  <meta http-equiv="content-type" content="text/html; charset=windows-1254" />
</head>
<body>
<?php
  function tamyolbul()
  {
    $yol=pathinfo($_SERVER['PHP_SELF']);
    $yol=$_SERVER["DOCUMENT_ROOT"].substr($yol['dirname'],1).'/';
    return $yol;
  }
  $baglantimetni = 'DRIVER={Microsoft Access Driver (*.mdb)}; DBQ='.tamyolbul().'bilgi.mdb';
  $baglanti=odbc_connect($baglantimetni,'','') or die('bağlanamadı');
  echo 'Access veritabanına bağlantı sağlandı<br>';
  $sorgu = "SELECT * FROM sozler";
  $sonuc = odbc_exec($baglanti, $sorgu);

  while ($data[] = odbc_fetch_array($sonuc));
  odbc_free_result($sonuc);
  odbc_close($baglanti);
  echo $i;
  echo '<pre>';
  print_r($data);
  echo '</pre>';
?>
</body>
</html>
<?php ob_end_flush(); ?>

Yukarıda kodları denemek için buradan indirebilirsiniz.

Access'ten MySQL'e aktarma yaparken karakter kodlamaları farkı yüzünden sorun çıkabiliyor, bu sorun da aşağıdaki yöntemle çözülebiliyor.

  while ($kayit = odbc_fetch_array($sonuc))
  {
    $i++;
    $sarki_adi=iconv("ISO-8859-9", "UTF-8", mysql_real_escape_string($kayit['sarki_adi']));
    $sarki_sozu=iconv("ISO-8859-9", "UTF-8", mysql_real_escape_string(nl2br($kayit['sarki_sozu'])));
    mysql_query("INSERT INTO sozler (`sarki_adi`, `sarki_sozu`) VALUES( '$sarki_adi',  '$sarki_sozu')") or die("Mesaj eklenemedi".mysql_error());
  }

 

25.08.2011 11:09:32

Yorumlar

Bu yazıya henüz yorum yapılmamış.

Yazı hakkında yorum yapmak için, buraya tıklayın.

Kategoriler :

Arşiv :

Etiketler :

Bağlantılar :