Ana Sayfa Haberler Yazılımlar Dersler Forumlar Reklam

PHP ile MySQL'e Bağlanma

25.08.2008 @ 12:00
448 kere okundu, 0 yorum yazildi.


Bu dersimizde, PHP ile MySQL veritabanına bağlantı kurmayla ilgili kısa ve açıklayıcı bilgiler paylaşacağız. Öncelikle PHP ve MySQL arasındaki ilişkiye ve kullanma nedenlerine bir göz atalım.

PHP açık kaynak kod dünyasında web (ağ) programlamada kullanılan en gözde scripting dilidir. Şu an itibari ile diğer rakiplerine büyük ölçüde fark atan PHP kod yapısı ile C diline çok benzemektedir. Açık kaynak kod dünyasının diğer bir neferi olan MySQL ise PHP ile nerdeyse bütünleşmiş olarak sürekli yan yana anılırlar. Şu anda PHP desteği veren firmalar bunun yanında MySQL destediğini verme zorunluluğu oluşmuştur. Çünkü internet üzerinde dağıtılan ücretsiz ve ücretli hazır  PHP scriptlerin neredeyse tamamı MySQL desteği istemektedir.

Öncelikle belirtmek gerekiyor ki burada anlatılanları mutlaka öncelikle kendi bilgisayarlarınızda denemeniz gerekmektedir.

Denemeleriniz için gerekli yazılımları internet üzerinden rahatlıkla temin edebilirsiniz. Başlangıçta xampp ve notepad++ yeterli olacaktır. Xampp, apache web (ağ) sunucu, PHPmyadmin, PHP ve MySQL dahili olarak gelmektedir. Kurulumdan sonra ayrıca özel bir ayarlamaya gerek yoktur. Özellikle Notepad++’nın kullanmamızın nedeni ücretsiz olması ve kodları renklendirme özelliği ile rahat bir şekilde PHP programlama yapabilmeniz içindir.

Her iki yazılımın kurulumunu yaptıktan sonra ön hazırlık safhasına geçmeye hazırsınız. Bunun için Internet Explorer’dan ya da Firefox’tan http://localhost/PHPmyadmin/ adresine giriş yapınız. Eğer ilk ekranda sizden kullanıcı adı ve şifre isterse kullanıcı adına root yazın şifreyi ise boş bırakın.

Giriş yaptıktan sonra deneme amacıyla blicca adında bir veritabanı açın.

Sol kısımdan Blicca isimli veritabanına tıklayın.

"kullanicilar" isimli bir tablo oluşturup 3 tanede alt alan ekleyiniz. Bu alanlar isim, soyisim ve email olmalıdır. Bunların hepside varchar türünde uzunlukları da 255 olarak ayarlanmalıdır.

Denemelerimiz için tablomuza birkaç bilgi eklememiz gerekiyor. Sol taraftan SQL yazılı simgeye tıklayın çıkan pencereye alttaki kodları yapıştırın sonrada Git tuşuna basarak kaydı tamamlayın.

insert into kullanicilar values('erhan', 'baris','epostaadresi@blicca.com');
insert into kullanicilar values('burak', 'barbak','epostaadresi2@blicca.com');
insert into kullanicilar values('volkan', 'tas','epostaadresi3@blicca.com');
insert into kullanicilar values('can', 'yilmaz','epostaadresi4@blicca.com');
insert into kullanicilar values('ozlem', 'ozgobek','epostaadresi5@blicca.com');

Gerekli ayarları yaptıktan sonra PHP ile MySQL bağlantısına geçmeye hazırsınız.

<?
$baglanti = @MySql_pconnect("localhost","root","") or die("sunucuya bağlanamadı...");
@MySql_select_db("blicca",$baglanti) or die("veritabanı seçilemedi");

//şu anda sunucuya bağlandık ve sorgulama yapmaya hazırız.
?>


Üstteki kodlar bizim ilk giriş daha doğrusu yapmamız gerekli olan tanımlamalardır. İlk satıra baktığımız zaman bağlantının asıl oluşturan kod yığınını rahatlıkla öbürlerinden ayırabiliriz. localhost ile kendi makinamıza bağlanmak istediğimi, root ile kullanıcı adımızı ve boş olanlada şifremizi belirtmiş oluyoruz. Daha doğrusu şifresi olduğunu belirtmiş oluyoruz. Kodun sağ tarafında kalan die fonksiyonu ise oluşabilecek herhangi bir hatalı durumda ekrana yazmasını istediğimiz yazıyı yazdık. Ekrana yazı yazıldıktan sonrada işlem sollandırılır.

İkinci satırda ise bağlantı kurulduktan sonra sunucudaki hangi veritabanına bağlanmak istediğimizi belirtiyoruz. MySql_select_db fonksiyonu içerisindeki ikinci alandaki değişken bizim asıl bağlantı değişkenimizdir. Bunu sonraları sorgularımızdan sonrada yazacağız. Bağlantıda olduğu gibi veritabanını seçtiğimiz zamanda hata durumlarına karşı die fonksiyonunu ekledik. Fonksiyonların başında duran @ işareti ise hata durumlarında hata mesajını ekrana yazdırmayı engelletmedir. Size tavsiyem hata vermesinden şüphe ettiğiniz kodlarda mutlak @ işretini kodunuzdan önce kullanınız.

$sorgu = @MySql_query("select * from kullanicilar", $baglanti) or die("sorguda hata var");
if (MySql_num_rows($sorgu) == 0)
echo "hic bir sonuc bulunamadı";
else
echo "bulunan toplam sonuc = ".MySql_num_rows($sorgu);


ilk sorgumuzu böylelikle yapmış olduk. Sorgumuza göre deneme tablomuzda bulunan bütün kayıtları seçtik. Sonrada tablomuzda bulunan bütün değerleri ekrana yazdırdık. Eğer bir kayıt yok ise ekrana kayıt olmadığını belirttik.

MySql_query fonksiyonu ile sql sorgularımızı çalıştırmış olduk. Sonrada MySql_num_rows fonksiyonu ile sorgumuzdan dönen satırların sayısını almış olduk. Buraya kadar eminim ki sıkıntı çektiğiniz ya da anlamadığınız bir yer yoktur.

Şimdi bu kayıtları nasıl okuyacağımıza bir göz atalım. Az önce kodumuzu biraz daha değiştirelim. Ve kodumuz şöyle olsun.


$sorgu = @MySql_query("select * from kullanicilar ", $baglanti) or die("sorguda hata var");
if (MySql_num_rows($sorgu) == 0)
echo "hic bir sonuc bulunamadı";
else
{
    $i = 0;
    while($alan = MySql_fetch_assoc($sorgu))
    {
        $i++;
        echo $i.") Isim ->".$alan['isim'].", Soyisim ->".$alan['soyisim'].", Email->".$alan['email']."<br>"\n;
    }
}


Bilgiler ekranda listeleniyor. Sorgudan dönen alanlar değişkene dizi (yani array) olarak ekleniyor. Bu alanlara tabloda ki isimleri ile çağırıyoruz. MySql_fetch_assoc ile sorgu değişkenimizden satırlar teker teker alınmaktadır. Her alınan alandan sonra bir sonraki alan otomatik olarak alınmaktadır. Bunun için ayrıca bir şey yapmanıza gerek yoktur. Yani imlecimizin satırlar arasında gezindiğini düşünün. Bir satır okunduktan sonra imlecimiz alt satıra geçer. Bu satırlar okundukça alt satıra geçerek devam eder. Buradaki  $i değişkeni ise ekrana okunan satırın sayısını okumak için kullandım.

while döngüsü yerine for döngüsünüde kullanabilirdik. Hemen onu da göstereyim.

for (i = 0; i < MySql_num_rows($sorgu);$i++)
{
    $alan = MySql_feetch_assoc($sorgu);
    //diğer kodumuz buraya
}


Burada seçim size kalmış. İster while isterseniz for döngüsünü kullanarak bilgileri alabilirsiniz.

İnternette dolaştığınız zaman MySql_fetch_assoc yerine MySql_fetch_array değişkeninin kullanıldığını da görebilirsiniz. Neredeyse her ikisi de aynı işlemi yapmaktadır. Aralarında ki ufak farklılık sizin kullanımınızı etkilememektedir.

Burada anlatılan bağlantı ve sorgulamalar için mutlakaki sql ve PHP ilginizin olması gerekmektedir. Şuan itibari ile basit olarak MySql veritabanına bağlanma ve sorgulamayı görmüş olduk. İlerleyen derslerde formlar üzerinde işlemler yapacağız. Bu uygulamalar ile daha iyi bir şekilde anlamış olacağız.
Yazan:
Erhan Baris
0.0
Toplam Oy Sayisi: 0
AddThis Social Bookmark Button
  • Yorumlar       
Yorum Bulunamadi!
  • Yorum Yaz       
Yorum Yazabilmeniz İçin Giriş Yapmanız yada Üye Olmanız Gerekmektedir.
Rumuz:

Guvenlik Kodu
Yorumunuz:
[b] [/b] ile kalinlik, [i] [/i] ile yatiklik ve [u] [/u] ile alticizik kelimeler ekleyebilirsiniz.
Örnek ;[b]Blicca[/b] [i]Bilgi[/i] [u]Sitesi[/u]
Bu site Firefox uyumlu olarak geliştirilmektedir.
Blicca ©