Veritabanı bağlantısı, dinamik web sitelerinde en sık kullanılan işlemlerden biridir. PHP ile MySQL veritabanı arasında bağlantı kurmak için kullanılan güvenli ve etkili yollardan biri mysqli (MySQL Improved) bağlantısıdır..
<?php
$host = "localhost"; // Veritabanı sunucusu
$kullanici = "root"; // Veritabanı kullanıcı adı
$sifre = ""; // Şifre (Varsayılan olarak boş olabilir)
$veritabani = "ornek_db"; // Bağlanmak istenen veritabanı
$baglanti = mysqli_connect($host, $kullanici, $sifre, $veritabani);
// Bağlantı kontrolü
if (!$baglanti) {
die("Veritabanı bağlantısı başarısız: " . mysqli_connect_error());
} else {
echo "Veritabanına başarıyla bağlanıldı!";
}
//karakter seti
mysqli_set_charset($baglanti, "utf8mb4");
?>
Yukarıda bir php sayfanın ornek_db isimli veri tabanına bağlanmasını sağlayan php - mysqli bağlantı kodlarını görebilirsiniz.
Bağlantı kodları genelde connection.php , baglan.php gibi isimlerle ayrı bnir sayfa olarak kaydedilir ve veri tabanı işlemi olacak her sayfanın başına "include" fonksiyonu ile çağırılır..
Koddaki bloklara tek tek bakalım...
mysqli_connect() fonksiyonu, PHP ile MySQL veritabanı arasında bağlantı kurmak için kullanılır. 4 değer alır, sırasıyla:
mysqli_connect("sunucu", "kullanici_adi", "sifre", "veritabani_adi");
Yerel makinede (localhost) çalışırken, sunucu "localhost" olurken kullanici adi "root" ve şifre genelde "" boş olur. Veri tabanı adı ise önceden oluşturduğunuz veri tabanının adıdır.
Bağlantı bir değişken içinde yazılır..
$baglanti = mysqli_connect($host, $kullanici, $sifre, $veritabani);
Bu değişken sayfalarda yapılacak veri tabanı işlemleri için vağlantıya doğrudan ulaşmamızı sağlar. Ayrıca bağlantının sağlanığ sağlanamadığını test etmemize olanak sağlar...
Eğer sayfayı yayınlamak için bir hosting sunucusuna yüklerseniz , size verecekleri sunucu adı, kullanıcı adı ve şifreyi bu bilgilerle güncellemeniz gerekecektir..
Yazılan veri tabanı bağlantısın çalışıp çalışmadığı IF bloğu ile kontrol edilebilir.
// Bağlantı kontrolü
if (!$baglanti) {
die("Veritabanı bağlantısı başarısız: " . mysqli_connect_error());
} else {
echo "Veritabanına başarıyla bağlanıldı!";
}
Burada !$baglanti şartı , $baglanti değişkeninin olup olmadığına bakar. ! işareti olduğundan "bağlantı yoksa" anlamına gelir. Bağlantı sağlanamazsa DIE fonksiyonu çalışır. Sağlanırsa ekranda "Veritabanına başarıyla bağlanıldı!" yazmalıdır..
die() fonksiyonu PHP'de çok basit ama çok güçlü bir fonksiyondur. Genelde hata kontrolü ya da kodun çalışmasını anında durdurmak için kullanılır. Aynı zamanda, istenirse bir hata veya mesaj da gösterebilir.
die("Bir hata oluştu!");
Yaptığımız veri tabanı bağlantısın9 kontrolederken if (!bağlanti) şartı sağlandığında die fonksiyonunu çalıştırdık ve mesaj vererek php'yi durdurduk. Ayrıca mysqli_connect_error()); fonksiyonu ile hatayı ekrana ytazdırmış olduk.
die("Veritabanı bağlantısı başarısız: " . mysqli_connect_error());
Bu fonksiyn mysqli_Connect çalıştığında meydana gelen hataların ekranda görünmesini sağlar. Genelde die() fonksiyonu ile beraber kullanılır..
Örneğin yukarıdki bağlantıda veri tabanı adını yanlış yazarsak şöyle bir uyarı alırız...
Veri tabanı adı yanlış olduğu için , veri tabanını bulamayacak ve ekranda "Unknown database 'yazilan_veri_tabani_adi" uyarısı görünecektir. ( yaptığım örnekte veri tabanının adı "sitem" idi ancak bağlantı cümlesine "saitem" yazdım)
Veritabanı ile sağlıklı iletişim kurmak ve Türkçe karakter sorunlarını önlemek için karakter seti belirlemek önemlidir. Türkçe dili için UTF8 kodlaması seçilir..
mysqli_set_charset($baglanti, "utf8mb4");
Ykarıda belirttiğim gibi veri tbanı işlemi yapılacak hersayfada bu bağlantı kodlarının olması gerekir. ANcak bu kodları her sayfaya olduğu gibi koymak çok fazla kod fazlalığına neden olur.ç ayrıca bağlantıda bir şey değiştirmek gerektiğinde , her sayfada ayrı ayrı uygulamak zorunda kalırız.
Bunun yerine , bağlantıyı baglan.php adıyla kaydederek farklı saufalara include fonksiyonu ile çağırırız.. Include fonksiyonu içine yazılan sayfanınn içeriğinin olduğu gibi çağrıldığı yerde olmasını sağlar..
Yaptıığımız bağlantıyı "baglan.php" olarak kaydettiğimizi varsayarsak;
<?php include ("baglan.php"); ?>
Yukarıdaki kod herhangi bir sayfaya eklendiğinde , artık baglan.php içeriği orada geçerli olur. Doayıısyla veri tabanı işlemi olacak her sayfanın başına bu kod eklenmelidir..
Toplam 33 Makale
Lütfen yorumlarınızda saygılı, yapıcı ve anlaşılır bir dil kullanın.
Küfür, hakaret ya da spam içerikler onaylanmaz.