mehmetkarahanlı
Aktif Üye
[FONT="] Php 5 ile gelen yeni mysql kütüphanesi mysqli kullanımı üzerine birkaç kod paylaşacağım. Mysqli, MySQL Improved Extension (geliştirilmiş Mysql eklentisi) adının kısaltılarak yazılışıır. Mysqli kütüphanesi sisteminizde aktif değilse şu yazıyı okumanızı öneririm: PHP: Kurulum - Manual . Mysqli’nin aktif olup olmadığını öğrenmek için phpinfo() fonksiyonunu kullanabilirsiniz. Bu fonksiyonu çalıştırın ve sayfada mysqli bölümünü aratın. Eğer bu kısmı göremiyorsanız mysqli aktif değildir.[/FONT]
[FONT="]Mysqli kütüphanesi Mysql 4.1.3 ve yukarısı için tasarlanmıştır. Daha fazla esneklik ve güvenlik sunar. Ayrıca Mysql 4 sürümünde Mysql’e daha hızlı bağlanmanızı sağlayan bağlantı protokolü eklenmiştir. Mysqli bu protokolden yararlanmamızı sağlar ve tüm mysql 4.1+ işlevselliğini destekler. Php, Mysqli kütüphanesini hem prosedürel, hem de nesne yönelimli olarak kullanmamıza imkân tanır. Daha fazlası için şu linke bakabilirsiniz: PHP: Overview - Manual[/FONT]
[FONT="]Mysqli ile iki şekilde Mysql bağlantısı kurabiliriz:[/FONT]
[FONT="][COLOR=white !important]?
[/FONT][/COLOR]
[FONT="]Yukarıdaki kodda sırasıyla mysql sunucumuzu, kullanıcı adımızı, şifre ve en son parametre olarak da kullanılacak veritabanını belirtiyoruz. Nesne yönelimli söz diziminde mysqli sınıfının bir örneği oluşturulur ve daha sonra sınıfa ait metotlar çağırılır. Prosedürel söz diziminde ise bir kaynak döner. Prosedürel olarak Mysqli kütüphanesini kullanacaksanız eğer fonksiyonlar genellikle Mysql için kullanmaya alışık olduğumuz fonksiyon isimlerine i harfi eklenmek suretiyle kullanılabilir (mysql_connect ve mysqli_connect gibi).[/FONT]
[FONT="]Unutmamanız gereken bir noktayı belirtmek isterim ki, eğer prosedürel söz dizimini kullanıyorsanız mysql bağlantınızı atadığınız değişkeni diğer temel mysqli fonksiyonlarına geçirmeniz gerekir. Aksi takdirde bir “Warning” mesajı alırsınız.[/FONT]
[h=3]Veritabanı Seçmek[/h][FONT="]Veritabanını iki şekilde seçebiliriz. 1. Seçenek veritabanına bağlanırken isteğe bağlı 4. parametre ile bağlanılacak veritabanını seçeriz. Yukarıdaki örnekte bu yöntemi tercih ettik. 2.si ise bağlantı metodu ya da fonksiyonu ile.[/FONT]
[FONT="][COLOR=white !important]?
[/FONT][/COLOR]
[FONT="]Prosedürel söz diziminde kullandığımız mysqli_select_db() fonksiyonunun iki parametre aldığına ve birinci parametre olarak veritabanı bağlantı kaynağını geçirdiğimiz değişken olduğuna dikkat edin.[/FONT]
[h=3]Sorgu Göndermek[/h][FONT="]Sorgu gönderme işlemi klasik Php ve Mysql kullanarak yaptığımız sorgulamanın neredeyse aynısıdır.[/FONT]
[FONT="][COLOR=white !important]?
[/FONT][/COLOR]
[h=3]Sorgu Sonuçlarını Almak[/h][FONT="]Veritabanına gönderdiğimiz sorgunun sonucunu almak için mysqli_fetch_assoc ya da mysqli_fetch_row fonksiyonunu kullanabilirsiniz. Mysqli_fetch_assoc isimli anahtarları, mysqli_fetch_row ise numaralandırılmış anahtarları olan bir dizi döndürür.[/FONT]
[FONT="][COLOR=white !important]?
[/FONT][/COLOR]
[h=3]Satır Sayısını Elde Etmek[/h][FONT="]Sorgudan dönen satır sayısını elde etmek için mysqli_num_rows() fonksiyonundan yararlanılabilinir.[/FONT]
[FONT="][COLOR=white !important]?
[/FONT][/COLOR]
[h=3]Örneklerin Birleştirilmesi[/h][FONT="]Nesne yönelimli söz dizimi:[/FONT]
[FONT="][COLOR=white !important]?
[/FONT][/COLOR]
[FONT="]Prosedürel söz dizimi[/FONT]
[FONT="][COLOR=white !important]?
[/FONT][/COLOR]
[FONT="]Anlaşılabilmesi için örnekleri çok basit tuttum. Bu yazı mysqli kütüphanesi kullanımı için giriş niteliğindedir. İyi çalışmalar.[/FONT]
[FONT="]Mysqli kütüphanesi Mysql 4.1.3 ve yukarısı için tasarlanmıştır. Daha fazla esneklik ve güvenlik sunar. Ayrıca Mysql 4 sürümünde Mysql’e daha hızlı bağlanmanızı sağlayan bağlantı protokolü eklenmiştir. Mysqli bu protokolden yararlanmamızı sağlar ve tüm mysql 4.1+ işlevselliğini destekler. Php, Mysqli kütüphanesini hem prosedürel, hem de nesne yönelimli olarak kullanmamıza imkân tanır. Daha fazlası için şu linke bakabilirsiniz: PHP: Overview - Manual[/FONT]
[FONT="]Mysqli ile iki şekilde Mysql bağlantısı kurabiliriz:[/FONT]
[FONT="][COLOR=white !important]?
1 2 3 4 | // nesne yönelimli söz dizimi $vt = new mysqli('localhost', 'root', '123456','veritabani'); // prosedürel söz dizimi $vt = mysqli_connect('localhost', 'root', '123456','veritabani'); |
[/FONT][/COLOR]
[FONT="]Yukarıdaki kodda sırasıyla mysql sunucumuzu, kullanıcı adımızı, şifre ve en son parametre olarak da kullanılacak veritabanını belirtiyoruz. Nesne yönelimli söz diziminde mysqli sınıfının bir örneği oluşturulur ve daha sonra sınıfa ait metotlar çağırılır. Prosedürel söz diziminde ise bir kaynak döner. Prosedürel olarak Mysqli kütüphanesini kullanacaksanız eğer fonksiyonlar genellikle Mysql için kullanmaya alışık olduğumuz fonksiyon isimlerine i harfi eklenmek suretiyle kullanılabilir (mysql_connect ve mysqli_connect gibi).[/FONT]
[FONT="]Unutmamanız gereken bir noktayı belirtmek isterim ki, eğer prosedürel söz dizimini kullanıyorsanız mysql bağlantınızı atadığınız değişkeni diğer temel mysqli fonksiyonlarına geçirmeniz gerekir. Aksi takdirde bir “Warning” mesajı alırsınız.[/FONT]
[h=3]Veritabanı Seçmek[/h][FONT="]Veritabanını iki şekilde seçebiliriz. 1. Seçenek veritabanına bağlanırken isteğe bağlı 4. parametre ile bağlanılacak veritabanını seçeriz. Yukarıdaki örnekte bu yöntemi tercih ettik. 2.si ise bağlantı metodu ya da fonksiyonu ile.[/FONT]
[FONT="][COLOR=white !important]?
1 2 3 4 | // nesne yönelimli söz dizimi $vt->select_db('veritabanı'); // prosedürel söz dizimi mysqli_select_db($vt,'veritabanı'); |
[/FONT][/COLOR]
[FONT="]Prosedürel söz diziminde kullandığımız mysqli_select_db() fonksiyonunun iki parametre aldığına ve birinci parametre olarak veritabanı bağlantı kaynağını geçirdiğimiz değişken olduğuna dikkat edin.[/FONT]
[h=3]Sorgu Göndermek[/h][FONT="]Sorgu gönderme işlemi klasik Php ve Mysql kullanarak yaptığımız sorgulamanın neredeyse aynısıdır.[/FONT]
[FONT="][COLOR=white !important]?
1 2 3 4 | // nesne yönelimli söz dizimi $sorgu = $vt->query('select sütun from tablo'); // prosedürel söz dimi $sorgu = mysqli_query($vt, 'select sütun from tablo'); |
[/FONT][/COLOR]
[h=3]Sorgu Sonuçlarını Almak[/h][FONT="]Veritabanına gönderdiğimiz sorgunun sonucunu almak için mysqli_fetch_assoc ya da mysqli_fetch_row fonksiyonunu kullanabilirsiniz. Mysqli_fetch_assoc isimli anahtarları, mysqli_fetch_row ise numaralandırılmış anahtarları olan bir dizi döndürür.[/FONT]
[FONT="][COLOR=white !important]?
1 2 3 4 | // nesne yönelimli söz dizimi $sonuc = $sorgu->fetch_assoc(); // prosedürel söz dizimi $sonuc = mysqli_fetch_assoc($sorgu); |
[/FONT][/COLOR]
[h=3]Satır Sayısını Elde Etmek[/h][FONT="]Sorgudan dönen satır sayısını elde etmek için mysqli_num_rows() fonksiyonundan yararlanılabilinir.[/FONT]
[FONT="][COLOR=white !important]?
1 2 3 4 | // nesne yönelimli söz dizimi $sorgu ->num_rows; //prosedürel söz dizimi mysqli_num_rows($sorgu); |
[/FONT][/COLOR]
[h=3]Örneklerin Birleştirilmesi[/h][FONT="]Nesne yönelimli söz dizimi:[/FONT]
[FONT="][COLOR=white !important]?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | // veritabanına bağlan $vt = new mysqli('localhost', 'root', '12345678'); // hata varsa uyar ve çalışmayı durdur if($vt->connect_errno) { echo 'Mysqli bağlantı hatası: ' . $vt->connect_errno; exit; } // deneme isimli veritabanını seç $vt->select_db('deneme'); // üyeler tablosundan kullanıcı adını seç $sorgu = $vt->query('select username from users'); // sonuçları ekrana yazdır while($sonuc = $sorgu->fetch_assoc()) { echo $sonuc['username'].'<br />'; } // satır sayısını ekrana yazdır echo 'Sorgudan dönen satır sayısı: '.$sorgu->num_rows; |
[/FONT][/COLOR]
[FONT="]Prosedürel söz dizimi[/FONT]
[FONT="][COLOR=white !important]?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | // mysql'e bağlan $vt = mysqli_connect('localhost', 'root', '12345678'); // hata varsa uyar ve çalışmayı durdur if(!$vt) { echo 'Mysqli bağlantı hatası: ' . mysqli_connect_errno(); exit; } // deneme isimli veritabanını seç mysqli_select_db($vt,'deneme'); // üyeler tablosundan kullanıcı adını seç $sorgu = mysqli_query($vt, 'select username from users'); // sonuçları ekrana yazdır while($sonuc = mysqli_fetch_assoc($sorgu)) { echo $sonuc['username'].'<br />'; } // satır sayısını ekrana yazdır echo 'Sorgudan dönen satır sayısı: ' . mysqli_num_rows($sorgu); |
[/FONT][/COLOR]
[FONT="]Anlaşılabilmesi için örnekleri çok basit tuttum. Bu yazı mysqli kütüphanesi kullanımı için giriş niteliğindedir. İyi çalışmalar.[/FONT]