İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

mysqli kütüphanesi

desoLate

0
İyinet Üyesi
Katılım
14 Haziran 2006
Mesajlar
220
Reaction score
0
Bildiğim kadarıyla mysql 4'te diğerlerine nazaran çok daha hızlı olan yeni bir bağlantı protokolü var ve bu protokolü kullanmak sadece mysqli ile mümkün.
PHP 5'te mysqli için bir kütüphane bulunmakta.
Bu başlık altında mysqli bilenler, tecrübe sahipleri bu kütüphane ile ilgili bilgiler paylaşırsa iyi olur düşüncesindeyim.

İlk olarak ben bildiğim kadarını yazayım.

mysql sunucusuna bağlanmak için ;
PHP:
@ $db = new mysqli('locahost', 'root', 'triadpass', 'test');
Yukarıdaki kodda localhost ana sisteme root kullanıcı adı ve triadpass şifresiyle bir bağlantı oluşturuyoruz ve test isimli veri tabanını seçiyoruz.
Bağlantımızın başarlı olup olmadığını da kontrol ettirmek için kodumuz;
PHP:
if (mysqli_connect_errno())
{
echo 'Veri tabanı bağlantısı kurulamadı.';
}
mysqli_connect_errno() fonksiyonu, bağlantıda bi hata varsa hata numarasını yoksa 0 değerini döndürür.

Yukarda seçmiş olduğumuz test veritabanını başka sayfalarda değiştirmek isteyebiliriz. Bunun için de;
PHP:
$db->select_db(db_ismi);
Kodunu kullanabiliriz.

Veritabanını sorgulamak
PHP:
$sorgu = "select kullanici_adi from tablo where kullanici_adi='desolate' limit 1";

Sorguyu çalıştırmak için;
PHP:
$sonuc = $db->query($sorgu);

Sorgu sonucu döndürülen satır sayısını bulmak için;
PHP:
$satir_sayisi =  $sonuc->num_rows;

Sorgu sonucunu almak için;
PHP:
$oku = $sonuc->fetch_assoc();
echo 'Kullanıcı Adı:';
echo $oku['kullanici_adi'];

fetch_assoc yerine alternatif olarak fetch_row() kullanarak sorgu sonuçlarını numaralandırılmış dizi olarak da alabilirsiniz. Sonrasında sonuçları $oku[0], $oku[1] şeklinde listeyebilirsiniz.

Yine bir diğer alternatif fetch_object() kullanarak sonuçta çıkan satıları bir nesnenin içine de alabilirsiniz. Sonrasında bu sonuçları $oku->kullanici_adi şeklinde listeyebilirsiniz.

Yukarda sorgu sonuçlarını almak için gerekli fonksiyonu çalıştırdıktan sonra sonuçları boşaltabiliriz. Bu işlem bildiğiniz gibi hızlı bir sistem için şiddetle önerilir :)
Kodumuz;
PHP:
$sonuc->free();

En son olarak veritabanı bağlatımızı koparmak için;
PHP:
$db->close();

Yöneticiler bu konuyu sabit yaparlarsa yararlı olacağı düşüncesindeyim. Sonuçta yavaş yavaş mysqli kullanımı başlayacaktır. Burda bildiğim kadarını anlatmaya çalıştım fakat bilmediğim daha bir çok yeni özellik olduğuna eminim. Umarım hepimiz için yararlı olur.
 

nothingrows

0
İyinet Üyesi
Katılım
31 Aralık 2004
Mesajlar
28
Reaction score
0
Evet manual'de, extension listesinde felan görüyorduk ama nedir pek bilemiyorum. Mesajda yazdıklarını görünce çok şaşırdım, çünkü gösterdiğin metodlarda işlem yapmaya yarayan bir sınıf biliyorum. ezSQL adındaki bu sınıfta sayfasında da görebileceğiniz gibi;

PHP:
$results = $db->get_results("SELECT name, email FROM users");

foreach ( $results as $user )
{
 echo $user->name;
 echo $user->email;
}

ile tüm kayıtları nesne olarak elde ediyor,

PHP:
$user = $db->get_row("SELECT name,email FROM users WHERE id = 2");

echo $user->name;
echo $user->email;

ile tek bir satırı nesne olarak elde ediyor,

PHP:
$var = $db->get_var("SELECT count(*) FROM users");

echo $var;

ile tek bir sütundaki veriyi ya da SELECT-FROM arasında elde edeceğiniz veriyi alıyor,

PHP:
$db->query("INSERT INTO users (id, name, email) VALUES (lisanssız,'Justin','[email protected]')");

ile de INSERT, DELETE veya UPDATE sorgularını çalıştırabiliyorsunuz.


ayrıca işlem sonunda

PHP:
$db->debug();

ile öncesinde yürütülmüş tüm işlemlerin detaylarına ulaşabilirsiniz. Herkese tavsiye ederim.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst