PHP’de MySQLi ile Veritabanı İşlemleri

PHP ile veritabanı işlemleri için çoğunlukla MySQL veritabanı kullanılır. Son yıllarda veritabanı bağlantı fonksiyon ve sınıfları çeşitlenmiştir. Burada MySQLi ile prosedürel bir şekilde veritabanı işlemleri gerçekleştirilecektir.

PHP’de MySQLi ile Veritabanına Bağlanma

Veritabanı bağlantısı kurulması için veritabanının bulunduğu sunucu, kullanıcı adı, şifre ve veritabanı bilgisine ihtiyaç duyulur. Veritabanı bağlantısı mysqli_connect() fonksiyonu ile sağlanır.

MySQLi ile Karakter Kodlamasını Ayarlama

Karakterlerin web sayfasında düzgün bir şekilde görüntülenebilmesi için hem dosyanın karakter kodlaması, hem web sayfasının meta karakter kodlaması, veritabanı kullanılıyorsa veritabanı bağlantı kodlaması ve veritabanı tablosundaki alanın karakter kodlamasının uyumlu olması gereklidir. UTF8, sorunsuz bir şekilde kullanılan karakter kodlamasıdır. Karakter kodlaması, mysqli_set_charset() fonksiyonu ile ayarlanır.

MySQLi ile Sorgu Gönderme

MySQL veritabanı üzerinde bir sorgu çalıştırmak için mysqli_query() fonksiyonu kullanılır. Fonksiyona ilk parametre olarak bağlantı bilgilerini içeren $baglanti değişkeni, ikinci olarak da SQL komutu gönderilir. Aşağıdaki örnekte ogrenci isimli bir tablodan veri çekilmektedir.

MySQLi ile Sonuçları Elde Etme

Veritabanından çok miktarda veri çekilecekse mysqli_fetch_array() fonksiyonu kullanılır. Bu fonksiyon, dizi tipinde değer döndürür ve MySQL tablosundaki her bir kayıt, ayrı bir dizi olarak getirilir. While döngüsü içinde kullanılarak döndürülen tüm satırların teker teker elde edilmesi sağlanır.

Yukardaki örnekte ogrenci_no, ad_soyad, sinif ve hobi isimli tablo alanları $satir isimli dizi değişken ile elde edilir.

MySQLi ile Tek Bir Sonuç Gösterme

Eğer sorgumuz çok sayıda kayıt yerine tek bir değer getirecekse bu durumda mysqli_result() fonksiyonu kullanılır.

Yukarıdaki örnekte 0 ile belirtilen parametre ile kaçıncı kayıttaki verilerle ilgilenildiği ifade edilir. 0 (sıfır) ifadesi, ilk kaydı işaret eder. Ardından gelen ad_soyad parametresi ise bu tablonun sıfırıncı kaydının (diğer bir deyişle ilk eleman) ad_soyad alanındaki veriyi işaret eder. Dolayısıyla komut sonucunda ilk kaydın ad_soyad alanı elde edilir.

MySQLi ile Gelen Sonuç Sayısını Gösterme

En son sorgu ile gelen kayıt sayısının öğrenilmesi için mysqli_num_rows() fonksiyonu kullanılır. Bu fonksiyona parametre olarak, mysqli_query() fonksiyonundan gelen değer gönderilir.

Eğer bu komutlar ile bir program yazılması gerekirse kaynak kodlar aşağıdaki gibi olacaktır:

 

MySQL’de Öğrenci Tablosu Oluşturma

Yukarıdaki örnekte bir öğrenci tablosu üzerinde işlemler gerçekleştirilmiştir. Öğrenci tablosunun oluşturulma komutları aşağıdaki gibidir:

 

Hürkal HÜSEM

2010 yılından bu yana Bilişim Teknolojileri Öğretmeni olarak meslek liselerinde görev yapmaktayım.

Tüm yazılarını göster

7 Comments on “PHP’de MySQLi ile Veritabanı İşlemleri”

  1. Ya kaç tane yerde aradım bulamadım. Kaç gündür uğraşıyorum sonunda çözdüm, eline sağlık.

  2. Süpersin hocam,
    Ben httpdocs altında mysqli de gösterdiğiniz gibi sistem/baglan.php hazırladım baglan.php de $baglan bilgileri var.
    İndex.php dosyamda httpdocs
    altında site/index.php.

    Bu index.php dosyama veritabanı bilgilerini nasıl include edeceğim?
    Httpdocs/site/pages/rightsides.php de de mysql den çağırmam gereken son yorumlar gibi bilgiler var. Bunun içinde de baglan.php yi include etmem gerekiyor mu?
    Yol gösteren bir yazı rica edebilir miyim?

    1. Yazı için vakit bulamam ancak buradan yardımcı olmaya çalışayım.
      index.php içerisinde veritabanı işlemlerini kullanmak için include(“../sistem/baglan.php”) şeklinde dosyayı dahil edebilirsiniz. Ancak en güzel yöntem, her bir sayfada bunları teker teker çağırmaktansa bir adet header.php gibi bir dosya yaparak ayar, veritabanı gibi her bir çağrıyı buradan yapın. Böylece daha kolay bakım yapabilirsiniz sayfanıza.
      rightsides.php için de, herhangi_bir_sayfa.php için de herader.php’yi dahil etmeniz yeterli olacaktır. header.php de diğer çağrıları gerçekleştirecektir.

  3. Merhaba Hocam acaba php ile sql sorgusu yaparken where şartı kullanılamıyor mu?? bununla ilgili örnek hiçbir yerde bulamadım. Yardımcı olabilir misiniz??

Akif by için bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.