19 Ağustos 2008

Php 'de Mysql kullanımı

Php gibi sunucu taraflı bir dil kullanılan sitelerin çoğu veri depolamak için bir veritabanı sistemi kullanır. Şu an kullanımda olan çeşitli veritabanı sunucuları arasında php ile birlikte en sık kullanılanı MySQL dir. Bu yazıda php kodları ile nasıl mysql sunucusuna bağlanıp sorgu işlemleri gerçekleştireceğinizi ilgili işlevleri açıklayarak örneklerle anlatmaya çalışacağım. Mysql ile ilgili ayrıntılı bilgiye MySQL in resmi sitesi olan www.mysql.com 'dan ulaşabilirsiniz. Ayrıca php.net de bu konuda açıklayıcı bilgi veren ve ilgili php işlevlerini liste halinde görebileceğiniz http://tr2.php.net/mysql adresini kaynak olarak kullanabilirsiniz.

Php ile mysql işlemleri gerçekleştirebilmemiz için ilk önce mysql sunucusuna bağlanmamız gerekir. Bunun için mysql_connect işlevini kullanırız:



$link = mysql_connect($server, $username, $password);

Bu ifadedeki parametrelerimiz sırasıyla sunucu adresi, veritabanı kullanıcı adı ve şifremizdir. mysql_connect işlevi elde edilen bağlantıya ait bir kaynak döner ancak çoğu zaman bunu kullanmaya ihtiyaç duymayız. Ancak aynı kod içinde birden fazla veritabanına eşzamanlı olarak bağlantı sağlamak istiyorsak varsayılan olarak en son yapılan bağlantı kullanıldığı için bunun haricindeki bağlantılarla ilgili sorgulamalarda ilgili kaynak değişkenini kullanırız. Çoğu zaman böyle bir durumla karşılaşmazsınız. Bağlantının başarısız olması durumunda dönüş değeri FALSE olur.

Bağlantı sağlandıktan sonra ilk yapmamız gereken veritabanı seçimi yapmaktır. Bunun için mysql_select_db işlevini kullanırız.



bool mysql_select_db ( string $database_name [, resource $link_identifier ] )


Zorunlu olan tek parametre veritabanı adıdır. İkinci parametre ise kullanmak istediğimiz bağlantıya ait kaynak bağlantı değişkenidir. Bu işlev de başarılı olma durumunda TRUE , hata durumunda FALSE değerini döner.

Veritabanı seçimi de başarıyla tamamlandığında artık sorgulama yapabiliriz. Bunun için ise mysql_query işlevi kullanılır.



resource mysql_query ( string $query [, resource $link_identifier ] )

Bu işlevi bir örnekle açıklayalım:


$sonuc = mysql_query("SELECT * FROM `uyeler` WHERE `id`=12 ");

Bu ifadeyle uyeler tablosunda id değeri 12 olan kaydı elde etmek üzere sorgulama yapıyoruz. Birden fazla bağlantı açtığımız özel bir durum olmadığı sürece ikinci parametreyi kullanmaya ihtiyacımız olmayacak. Bu işlev ile sorgudan elde edilen sonucu bir değişkene kaydediyoruz. Bu sonuç değişkeni sorguyla elde ettiğimiz kayıtları toplu halde içerir ve bu kayıtları sırayla elde etmek için kayıt getirme işlevlerinden birini kullanırız. Bunlar mysql_ fetch_ row, mysql_ fetch_ assoc, mysql_ fetch_ array ve mysql_ fetch_ object işlevleridir. Bu işlevlerin herbiri sonuç verimizin içinden bir kayıt satır çeker.

Elde etmek istediğimiz satırı
mysql_fetch_row işleviyle sayısal indisli bir dizi olarak,
mysql_fetch_assoc işleviyle tablodaki sütun adlarıyla ilişkili bir dizi olarak,
mysql_fetch_array işleviyle ister sayısal, ister ilişkisel, ister her iki türde indisli bir dizi olarak,
mysql_fetch_object işleviyle ise sütun adlarında değişkenlere sahip bir nesne olarak
elde ederiz.

mysql_fetch_assoc işlevi ile bir örnek gösterelim:




$satir = mysql_fetch_assoc($sonuc);
$kullanici_adi = $satir['kullanici_adi'];
...

Bu şekilde elde ettiğimiz satırın sütunlarına erişebiliriz. mysql_fetch_object işlevini kullanmış olsaydık kullanıcı adını

$kullanici_adi = $satir->kullanici_adi ;

şeklinde bir nesne öğesi olarak elde edecektik. Birden fazla kayıt elde etmek için ise aşağıdaki gibi bir döngü kullanabiliriz:


while($satir = mysql_fetch_assoc($sonuc) ){
echo 'Kullanıcı adı: '.$satir['kullanici_adi'];
}

Sorgu sonucuna ait bütün satırlar bittiğinde mysql_fetch_assoc (yada diğer işlevlerden biri) FALSE döneceğinden döngü sona erecektir. Bu şekilde elde ettiğimiz verileri istediğimiz şekilde kullanabiliriz.

Sorgu sonucuna ait veriyi serbest bırakmak için mysql_ free_ result işlevini kullanabilirsiniz. Ama bunun yerine aynı sonuç değişkenini başka sorgularda da kullanabilirsiniz.

Bağlantıyı bitirmek istediğinizde mysql_ close işlevini kullanabilirsiniz. Bu genelde pek kullanılmaz çünkü kodun çalışması sona erdiğinde bağlantı zaten kesilecektir.

Hiç yorum yok:

Kripto paralar hakkında

Kripto paralar, merkezi olmayan, şifrelenmiş ve dağıtılmış bir veritabanı olan blok zinciri teknolojisi kullanılarak oluşturulan dijital par...