PHP ile veritabanı sorgu sonuçlarını getirirken bazen veri tabanı tablosundaki sütunların sıra numarası yerine sütun isimleri ile gelmesini isteyebilirsiniz. İşte bu durumda MySQLi yada PDO ile sorgulama yaparken datayı FETCH_ASSOC kullanarak getirmeniz gerekir.
Bu yazıda hem MySQLi hem de PDO kullanarak aşağıdaki gibi olan OGRENCI tablosunun sütun adlarını indis(index) olarak getirmeyi göstereeğiz.

PDO ile FETCH ASSOC Kullanımı
Aşağıdaki gibi PDO::FETCH_ASSOC ifadesini kullanabilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php /* Sürücü isteğiyle bir MySQL veritabanına bağlanalım */ $dsn = 'mysql:dbname=kutuphane;host=127.0.0.1'; $user = 'root'; $password = ''; $baglan = new PDO($dsn, $user, $password); /*************************** */ $sth = $baglan->prepare("SELECT * FROM OGRENCI"); $sth->execute(); echo "<pre>"; /* Sonuç kümesindeki tüm satırları alalım */ print("Sonuç kümesindeki tüm satırlar:\n"); $result = $sth->fetch(PDO::FETCH_ASSOC); print_r($result); ?> |
Yukarıdaki ifadenin çıktısı şu şekilde olacaktır.
1 2 3 4 5 6 7 8 9 10 11 12 | Array ( [ogrno] => 1 [ograd] => Hülya [ogrsoyad] => Yiğit [cinsiyet] => K [dtarih] => 1998-04-08 [sinif] => 10A [puan] => 0 ) |
$result[“ograd”] olarak ismi ekranda yazdırabilirsiniz.
MySQLi FETCH_ASSOC Kullanımı
mysqli_result::fetch_assoc() fonksiyonu ile MySQL tablolarındaki verileri alırken index numaraları yerine index isimleri ile alabilirsiniz. Yukarıdaki tabloyu kullanarak aşağıdaki gibi alan adlarınını index numarası yapabilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); $mysqli = new mysqli("localhost", "root", "", "kutuphane"); $query = "SELECT * FROM OGRENCI"; $result = $mysqli->query($query); /* fetch associative array */ while ($row = $result->fetch_assoc()) { printf($row["ograd"]."<br>"); } |
Yorum yap