gittigidiyor

Php ile mysqli kullanımı

mehmetkarahanlı

Aktif Üye
Katılım
17 Eyl 2015
Mesajlar
22,965
Tepkime puanı
48
Puanları
0
Konum
Bursa
[FONT=&quot] 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=&quot]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=&quot]Mysqli ile iki şekilde Mysql bağlantısı kurabiliriz:[/FONT]
[FONT=&quot][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=&quot]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=&quot]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=&quot]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=&quot][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=&quot]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=&quot]Sorgu gönderme işlemi klasik Php ve Mysql kullanarak yaptığımız sorgulamanın neredeyse aynısıdır.[/FONT]
[FONT=&quot][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=&quot]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=&quot][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=&quot]Sorgudan dönen satır sayısını elde etmek için mysqli_num_rows() fonksiyonundan yararlanılabilinir.[/FONT]
[FONT=&quot][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=&quot]Nesne yönelimli söz dizimi:[/FONT]
[FONT=&quot][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=&quot]Prosedürel söz dizimi[/FONT]
[FONT=&quot][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=&quot]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]
 

Bilgi / İnfo

satcafesi.net kar amacı gütmeyen bilgi & paylaşım üzerine kurulu ücretsiz bir forum sitesidir,Üyeler her türlü bilgiyi,dosya,video,resim,vs. önceden onay olmadan paylaşabilmektedir,bunedenle oluşacak herhangi bir illegal paylaşımdan satcafesi sorumluluk almamaktadır,T.CK.na aykırı paylaşım görüldüğünde iletişim kısmından bizlere bildirmenizi rica ederiz.

Yasal Haklar

Foruma gönderilen mesajlardan öncelikle mesaj sahipleri sorumludurlar. Forum yöneticileri başkalarının mesaj veya konularından sorumlu tutulamazlar. Ancak yasal nedenlere bağlı herhangi bir şikayet durumunda, yetkililer bilgilendirildiği takdirde ilgili düzenleme yapılacaktır.
Üst