Yazdır 15 Haziran 2010 Salı (Hit: 13653)

MySQL'e Bağlanma (mysql_connect)

PHP ile MySQL veritabanı sunucusuna bağlanmak için mysql_connect fonksiyonu kullanılır. Kullanımı aşağıdaki gibidir.

mysql_connect($sunucu, $kullanici, $sifre);

Bu fonksiyon 3 parametre alır.

  • $sunucu: MySQL veritabanı sunucusunun adresidir. Bu adres genelde localhost 'dur. Gerçek sunucularda ise size verilen adrestir.
  • $kullanici: Veritabanı sunucusuna bağlanmak isteyen kullanıcının adıdır. Kendi bilgisayarımızda genelde root kullanıcısı olarak bağlanırız. Gerçek sunucularda ise size verilen kullanıcı adını girmelisiniz.
  • $sifre: Veritabanına bağlanmak isteyen kullanıcının şifresidir. Veritabanı kullanıcısı için belirlediğiniz yada size verilen şifredir.

Bu fonksiyondan geriye boolean türünde bir değer döner. Eğer bağlantı başarılı ise true (1), bşarısız ise false (0) döner.

 

PHP ile MySQL veritabanı sunucusuna aşağıdaki bilgilerle bağlanalım.

Sunucu: localhost
Kullanıcı: root
şifre: 1234

<html>
   <head>
      <title>İlk MySQL Bağlantım</title>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   </head>
   <body>
   <?php
   if (@mysql_connect("localhost","root","1234")==true)
      echo "MySQL ile bağlantı başarılı.";
   else
      echo "Hata: Bağlantı başarısız!";
   ?>
</body>
</html>

Buradaki @ işareti uyarı mesajını ekranda gizlemek için kullanılır.

 

Bu örneğimizi biraz geliştirelim ve hata oluşursa hata mesajını ekranda mysql_error() fonksiyonu ile gösterelim.

<html>
   <head>
      <title>İlk MySQL Bağlantım</title>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   </head>
   <body>
   <?php
   $sunucu="localhost";
   $kullanici="root";
   $sifre="1234";

   if (@mysql_connect($sunucu,$kullanici,$sifre)==true)
      echo "MySQL ile bağlantı başarılı.";
   else{
      echo "<b>Hata</b>: Bağlantı başarısız!<br>";
      echo "<b>Hata açıklaması</b>: ".mysql_error();
   }
   ?>
</body>
</html>

Eğer MySQL fonksiyonlarından birinde hata oluşursa bu hata mesajı mysql_error() fonksiyonu ile alınabilmektedir.
 

Eğer sayfamızdaki işlemlerin yapılabilmesi için veritabanı bağlantısı gerekiyorsa ve veritabanına bağlanılamazsa hata mesajı ekrana yazdırılır ve sayfanın çalışması durdurulur. Yani sonraki kodları çalışmasına izin verilmez. Şimdi kodumuzu bu işlemleri yapacak şekilde tekrar yazalım.

<html>
   <head>
      <title>İlk MySQL Bağlantım</title>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   </head>
   <body>
   <?php
   $sunucu="localhost";
   $kullanici="root";
   $sifre="1234";

   if (@mysql_connect($sunucu,$kullanici,$sifre)==false){
      $mesaj="<b>Hata</b>: Bağlantı başarısız!<br>";
      $mesaj.="<b>Hata açıklaması</b>: ".mysql_error();
      die($mesaj);
   }

   echo "Bu mesajı ekranda görüyorsanız bağlantınız başarılıdır.<br>";
   echo "Burada veritabanı ile istediğiniz işlemleri yapabilirsiniz.";
   ?>
</body>
</html>

die($mesaj); fonksiyonu bir mesajla sayfanın çalışmasını durdurmak için kullanılır.


Gerçek uygulamalarda veritabanı bilgileri ayrı bir dosyada saklanır. Bu dosya bağlantının yapılacağı yere eklenir ve bağlantıda kullanılır. Bu dosyaların adı genelde config.php'dir. Bir php sayfasını başka bir sayfaya eklemek için include($dosya_adi); fonksiyonu kullanılır. Burada tabiki 2 tane dosyamız olacaktır.

<?php
// bu dosya config.php dosyasıdır.
$sunucu="localhost";
$kullanici="root";
$sifre="1234";
?>
<!--bu dosya index.php dosyasıdır.-->
<html>
   <head>
      <title>İlk MySQL Bağlantım</title>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   </head>
   <body>
   <?php
   include("config.php");

   if (@mysql_connect($sunucu,$kullanici,$sifre)==false){
      $mesaj="<b>Hata</b>: Bağlantı başarısız!<br>";
      $mesaj.="<b>Hata açıklaması</b>: ".mysql_error();
      die($mesaj);
   }

   echo "Bu mesajı ekranda görüyorsanız bağlantınız başarılıdır.<br>";
   echo "Burada veritabanı ile istediğiniz işlemleri yapabilirsiniz.";
   ?>
</body>
</html>

config.php dosyası sayesinde yapılandırma ayarları kolaylıkla yapılabilmektedir. Veritabanı bağlantısı yapılan her yerde bu dosya include edilir. Bu dosyada değişiklik yapıldığında, include edildiği her yerde bu değişiklik geçerli olacaktır.

 

MySQL Veritabanı Seçme (mysql_select_db)

MySQL ile bağlantı yapıldıktan sonra ilk olarak kullanılacak veritabanı seçilmelidir. Kullanılacak veritabanını seçmek için mysql_select_db($veritabani); fonksiyonu kullanılır. Bu fonksiyon, işlem başarılı ise true, başarısız ise false değerini döndürür.

Örneğimizde MySQL veritabanına bağlanıp, kullanacağımız okul isimli veritabanını seçelim.

<?php
// bu dosya config.php dosyasıdır.
$sunucu="localhost";
$kullanici="root";
$sifre="1234";
$veritabani="okul";
?>
<!--bu dosya index.php dosyasıdır.-->
<html>
   <head>
      <title>İlk MySQL Bağlantım</title>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   </head>
   <body>
   <?php
   include("config.php");

   if (@mysql_connect($sunucu,$kullanici,$sifre)==false){
      $mesaj="<b>Hata</b>: Bağlantı başarısız!<br>";
      $mesaj.="<b>Hata açıklaması</b>: ".mysql_error();
      die($mesaj);
   }

   if (@mysql_select_db($veritabani)==false){
      $mesaj="<b>Hata</b>: $veritabani veritabanı seçilemedi!<br>";
      $mesaj.="<b>Hata açıklaması</b>: ".mysql_error();
      die($mesaj);
   }

   echo "Bu mesajı ekranda görüyorsanız bağlantınız ve veritabanı seçiminiz başarılıdır.<br>";
   echo "Burada veritabanı ile istediğiniz işlemleri yapabilirsiniz.";
   ?>
</body>
</html>

 

Hatta bağlantıyı yapan tüm kodları tek bir dosyada toplayıp bunu istediğiniz yere include edebilirsiniz. Dosya adı olarak baglan.php kullanılabilir.

<?php
// bu dosya baglan.php dosyasıdır.
$sunucu="localhost";
$kullanici="root";
$sifre="1234";
$veritabani="okul";

if (@mysql_connect($sunucu,$kullanici,$sifre)==false){
   $mesaj="<b>Hata</b>: Bağlantı başarısız!<br>";
   $mesaj.="<b>Hata açıklaması</b>: ".mysql_error();
   die($mesaj);
}

if (@mysql_select_db($veritabani)==false){
   $mesaj="<b>Hata</b>: $veritabani veritabanı seçilemedi!<br>";
   $mesaj.="<b>Hata açıklaması</b>: ".mysql_error();
   die($mesaj);
}
?>

Eğer burada bağlantı başarılı ise ekranda hiçbir şey görünmeyecektir. Aksi halde hata mesajı ekranda görünecektir.

 

Yeni bir programlama yaklaşımı olan nesneye yönelik programlamada genelde veritabanı işlemleri için bir class yazılır ve bu class'dan üretilen nesnelerle veritabanı işlemleri yapılmaktadır. İlerleyen derslerimizde bu konu da işlenecektir.


Bu site meslek liselerinde bilişim bölümü web programcılığı dalında okutulan internet programcılığı dersine yardımcı olması için tasarlanmıştır. İletişim için iletisim@phpdefteri.com
Apache PHP MySQL PhpMyAdmin EasyPHP Xampp AppServ Wamp W3School

www.phpdefteri.com © 2010