Mysql İle Veritabanı Bağlantı Fonksiyonları Mysql İle Veritabanı Bağlantı Fonksiyonları Mysql_result, mysql_fetch_array, mysql_fetch_row, mysql_fetch_object 1. mysql_result Sonuç veriyi (sadece bir field) ekrana getirir. Bu fonksiyon dahili bir sonuç belirleyicisini , satir numarasını ve alan ismini argument olarak alır. mysql_result(), bir MySQL sonuç kümesinden bir hücrenin içeriğini döndürür. Büyük sonuç kümeleri üzerinde çalışıldığında, tüm satırı getirecek fonksiyonlardan biri kullanılmalıdır. Bir fonksiyon çağrımında bu fonksiyonlar birden çok hücrenin içeriğini döndüreceğinden, bunlar, mysql_result()'tan çok daha hızlı olacaktır. Ayrıca saha değişkeni için sayısal bir değer belirlemenin, bir saha ismi veya SahaIsmi TabloIsmi değişkeni belirlemeden daha hızlı olduğu unutulmamalıdır <?php $sql="select * from table"; $sorgu=mysql_query($sql,$baglantim); $deger=mysql_result($sorgu,,); echo $deger; ?> 0,0 ile ilk satırdaki ilk alanın değeri $deger=mysql_result($sorgu,,); mysql_result(sorgumuz, satır, sütun); mesela; adi,soyadi,nick alanlar var ise , ilk kayıtta da Burak Demiroz var ise sonuç Burak olarak dönecektir. 2. mysql_fetch_row () Veritabanından SQL komutları ile seçilen kayıtların programa döndürülmesi mysql_fetch_row () fonksiyonu ile sağlanır. Bu hazır fonksiyon yalnızca sonuçların döndürülmesinin istendiği sorgu-sonucu-setini argument olarak alır. Bu komutun sonucunda, sorgunun sonucunda eslesen satırlara ait veriler dizinin elemanları olacak şekilde döner. Daha fazla döndürecek satir kalmadığında (sorgunun sonucunda seçilen bütün satırlar bittiğinde) "false" değişken değeri döner. $getirilen_satir = mysql_fetch_row($sonuc_seti); PHP kendi içinde bir işaretleyici kullanarak bir önceki mysql_fetch_row() fonksiyonun döndürüldüğü satırı bilmektedir. Böylece her seferinde bu fonksiyon çağırıldığında bir sonraki satıra geçilmektedir. Artık geçecek satır kalmadığında bu fonksiyon false yani yanlış değerini döndürür www.dijitalders.net Mysql İle Veritabanı Bağlantı Fonksiyonları 1 Mysql İle Veritabanı Bağlantı Fonksiyonları <?php $sonuc = mysql_query("SELECT id, email FROM people WHERE name = 'tolga'"); if (!$sonuc) { echo 'Hatalı sorgu : ' . mysql_error(); exit; } $sorgu_satiri = mysql_fetch_row($sonuc); echo $sorgu_satiri[]; // 42 yani tolganın id'si echo $sorgu_satiri[1]; // tolganın email i ?> 3. mysql_fetch_array Bir birleşmiş dizi gibi bir sonuç satırını getirir. array mysql_fetch_array(int result, int [result_type]); Getirilen satıra uyan bir dizi veya daha fazla satır yoksa false geri döner. mysql_fetch_array(), mysql_fetch_row()' un genişletilmiş bir versiyonudur. Sonuç dizinin sayısal göstergelerinde saklanan veriye ek olarak, saha isimlerini anahtar olarak kullanarak, ilişkili göstergelerde veriyi de saklar. mysql_fetch_array() kullanmak, mysql_fetch_row() kullanmaktan önemli düzeyde yavaş değildir Eger sonucun bir veya daha fazla sütunu aynı saha isimlerine sahipse, son sütun önceliği alır. Aynı ismin diğer sütunlarına erişmek için, sütunun sayısal indeks' i mevcut olmalı veya sütun için başka bir isim tanımlanmalıdır. <?php mysql_connect($host,$user,$password); $sonuc = mysql_db_query("database","select * from table"); while($row = mysql_fetch_array($sonuc)) { echo $sorgu_satiri["uye_id"]; echo $sorgu_satiri["uye_isim"]; } mysql_free_result($sonuc); ?> 4. mysql_fetch_object Nesne formunda bir sonuç satırı getirir. www.dijitalders.net Mysql İle Veritabanı Bağlantı Fonksiyonları 2 Mysql İle Veritabanı Bağlantı Fonksiyonları object mysql_fetch_object(int result, int [result_type] ); Getirilen satırla ilişkili olan özellikleri ile bir nesne veya daha fazla satır yoksa false döndürür. mysql_fetch_object(), mysql_fetch_array()' e çok benzer. Tek farkı, bir dizi yerine tek bir nesnenin geri dönmesidir. Dolaylı olarak, bu, veriye onların ofsetleri (sayılar yasal olmayan özellik isimleridir) ile değil, sadece saha isimleriyle erişilebileceği anlamına gelir. Seçimli değişken olan result_typ bir sabittir ve şu değerleri alabilir: MYSQL_ASSOC, MYSQL_NUM, ve MYSQL_BOTH. Fonksiyonun hızı, mysql_fetch_array() ile aynıdır ve hemen hemen mysql_fetch_row() kadar hızlıdır. (aradaki fark önemsiz derecede azdır). <?php mysql_connect($host,$user,$password); $result = mysql_db_query("database","select * from table"); while($row = mysql_fetch_object($result)) { echo $row->user_id; echo $row->fullname; } mysql_free_result($result); ?> <?php $Sorgu=mysql_query("SELECT * FROM sozler"); //Sorgudan Tek hücre değeri almak için echo mysql_result($Sorgu, 5, 2); //6. Satir 3. sutundaki veri // Sorgudan Tek satır değeri almak için $Sonuc=mysql_fetch_row($Sorgu); echo $Sonuc[2]; // tek satır döndürür 3. kolondaki bilgi // Sorgudan tüm kayıtları diziye almak için while($Sonuc=mysql_fetch_array($Sorgu, MYSQL_NUM)){ //echo "{$Sonuc['soz']} {$Sonuc['soyleyen']} <br />"; //echo $Sonuc["soz"]." ".$Sonuc["soyleyen"]; } while($Sonuc=mysql_fetch_object($Sorgu)){ www.dijitalders.net Mysql İle Veritabanı Bağlantı Fonksiyonları 3 Mysql İle Veritabanı Bağlantı Fonksiyonları echo "$Sonuc->soz $Sonuc->soyleyen <br />"; //echo $Sonuc["soz"]." ".$Sonuc["soyleyen"]; } mysql_free_result($Sorgu); // sorgu bellekten temizleniyor ?> Gönderen : Burak DEMİRÖZ www.dijitalders.net Mysql İle Veritabanı Bağlantı Fonksiyonları 4