PHP’de MySQLi Kullanımı

MySQLi

21 Nisan 2018

PHP 5 ile gelen MySQL kütüphanesi olan MySQLi’yi kafanızı fazla karıştırmadan sizlere anlatmak istiyorum. Öncelikle sunucunuzda veya localhostunuzda PHP 5 sürümünü veya daha üstünü kullandığınızdan emin olun. Hangi sürümü kullandığınızı bilmiyorsanız boş bir php sayfası oluşturup içerisine;

<?php 
  phpinfo();
?>

yazarsanız hangi sürümü kullandığınızı bu adresin tarayıcıdaki çıktısından öğrenebilirsiniz.

MySQLi bağlantısını iki şekilde yapabilirsiniz ben zor anlarım bana MySQL’deki gibi anlat derseniz;

<?php 
   $vt = mysqli_connect('localhost', 'root', '123456','veritabani');
?>

Ben her türlü anlarım sen bana anlat yeter ki diyenlere de ;

<?php 
   $vt = new mysqli('localhost', 'root', '123456','veritabani');
?>

Bana göre ikisi de aynı işlevi görüyor. Keyfinize göre kullanabilirsiniz.

Veritabanı Seçmek

Veritabanını iki şekilde seçebiliriz.

1- Yukarıdaki MySQLi bağlantı kodlarındaki gibi.

2- Ek bir fonksiyon ile.

Size yukarıda iki yol göstermiştim hangisini sevdiyseniz ve tercih ettiyseniz aşağıdaki kodları da aynı yoldan kullanabilirsiniz.

<?php 
  $vt->select_db('veritabanı');
?>
<?php 
  mysqli_select_db($vt,'veritabanı');
?>

Sorgu Göndermek

Sorgu gönderme işlemi klasik PHP ve MySQL kullanarak yaptığımız sorgulamanın neredeyse aynısıdır.

<?php 
  $sorgu = $vt->query('select * from tablo');
?>
<?php 
  $sorgu = mysqli_query($vt, 'select * from tablo');
?>

Sorgu Sonuçlarını Almak

Veritabanına gönderdiğimiz sorgunun sonucunu almak için mysqli_fetch_assoc ya da mysqli_fetch_row fonksiyonunu kullanabilirsiniz. mysqli_fetch_assoc isimli anahtarları, mysqli_fetch_row ise numaralandırılmış anahtarları olan bir dizi döndürür.

<?php 
  $sonuc = $sorgu->fetch_assoc();
?>
<?php 
  $sonuc = mysqli_fetch_assoc($sorgu);
?>

Satır Sayısını Elde Etmek

Sorgudan dönen satır sayısını elde etmek için mysqli_num_rows() fonksiyonundan yararlanılabilinir.

<?php 
  $sorgu ->num_rows;
?>
<?php 
  mysqli_num_rows($sorgu);
?>

Örneklerin Birleştirilmesi

<?php 
  // veritabanına bağlan
  $vt = new mysqli('localhost', 'root', '12345678');
  // hata varsa uyar ve çalışmayı durdur
  if($vt->connect_errno) {
    echo 'MySQLi bağlantı hatası: ' . $vt->connect_errno;
    exit;
  }
  // kullanicilar isimli veritabanını seç
  $vt->select_db('kullanicilar');
  // kullanicilar tablosundan kullanıcı adını seç
  $sorgu = $vt->query('SELECT kullaniciadi FROM kullanicilar ');
  // sonuçları ekrana yazdır
  while($sonuc = $sorgu->fetch_assoc()) {
     echo $sonuc['kullaniciadi'].'<br />';
  }
  // satır sayısını ekrana yazdır
  echo 'Sorgudan dönen satır sayısı: '.$sorgu->num_rows;

?>
<?php 
  // MySQL'e bağlan
  $vt = mysqli_connect('localhost', 'root', '12345678');
  // hata varsa uyar ve çalışmayı durdur
  if(!$vt) {
    echo 'Mysqli bağlantı hatası: ' . mysqli_connect_errno();
    exit;
  }
  // kullanicilar isimli veritabanını seç
  mysqli_select_db($vt,'kullanicilar');
  // kullanicilar tablosundan kullanıcı adını seç
  $sorgu = mysqli_query($vt, 'SELECT kullaniciadi FROM kullanicilar');
  // sonuçları ekrana yazdır
  while($sonuc = mysqli_fetch_assoc($sorgu)) {
    echo $sonuc['kullaniciadi '].'<br />';
  }
  // satır sayısını ekrana yazdır
  echo 'Sorgudan dönen satır sayısı: ' . mysqli_num_rows($sorgu);
?>

MySQLi makalesinin sonuna geldik ama ufak bir bilgi daha vereyim yukarıdaki anlattıklarım giriş seviyesindedir.