PHP ile MySQL'e BaÄŸlanma
| 25.08.2008 @ 12:00 |
1395 kere okundu,
1 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 |
|
|
| Yazan : aeren - 24/12/2008çok güzel bir çalışma olmuş devamını bekliyoruz mümkünse basit bir veri kayıt - silme okuma- değiştirme örnegi anlatırmısın? teşekkürler
|
Yorum Yazabilmeniz İçin Giriş Yapmanız yada Üye Olmanız Gerekmektedir.
|
- Haberler
- Programlar
- Forumlar
|