Arama butonu
Bu konudaki kullanıcılar: 1 misafir
5
Cevap
594
Tıklama
0
Öne Çıkarma
Php mysqli kapama yardim
A
8 yıl
Teğmen
Konu Sahibi

Arkadaşlar web sitemde mysqli bağlantısı kullanıyorum. Bazen bağlantıyı kapatmayı unuttugumda oluyor. Sayfanın footerine bunu eklemek istiyorum fakat mysqli connect kullanmadığım sayfalarda mysqli_close kullaninca bağlantı zaten yok gibi bir hata alıyorum.

Basit bir if komutu ile bağlantı açık mi kontrol edemiyormuyum



< Bu ileti mobil sürüm kullanılarak atıldı >

S
8 yıl
Yarbay

Sayfa sonu geldiğinde PHP zaten veritabanı bağlantısını (kalıcı değilse) otomatik kapatır. PHP 4'ten beri bu böyle.



A
8 yıl
Teğmen
Konu Sahibi

P connect ile baglanmiyorum ama genede gecenlerde too many connection hatasi loglamis 2 sayafada close yapmamisim yapinca düzeldi. Ben şöyle bi footer yani sayfa bitimi yapmayi planliyorum.

if ile bağlantı kontrolü, true ise baglantiyi close la



< Bu ileti mobil sürüm kullanılarak atıldı >

A
8 yıl
Teğmen
Konu Sahibi

if (!mysqli_connect_errno()) {

mysqli_close($bagla);

exit();

}

Komutunu denedim ama gene de hata alıyorum.



< Bu ileti mobil sürüm kullanılarak atıldı >

S
8 yıl
Yarbay

Normalde böyle birşeye gerek kalmaması lazım. Sayfanın en başında veritabanı bağlantısı yapılır, veritabanı işlemleri yapılır ve bağlantı kapatılır. Sayfanın geri kalanında yeniden veritabanı bağlantısı açılmaz, açılmaması lazım.

Yine de sorduğun soruya karşılık şöyle cevap verebilirim. Eğer ".htaccess" dosyası kullanıyorsan aşağıdaki satırı bu dosyaya gir:

php_value auto_append_file "/includes/sayfa_sonu.php"


"sayfa_sonu.php" dosyası senin bütün php sayfalarının sonunda otomatik olarak çalıştırılacak. İşte bu dosya içerisinde if-else ile veritabanı bağlantı kontrolü yapabilirsin. Diyelimki sayfa ilk açıldığında veritabanı bağlantısını mysql_connect() ile yapıp sonucu da $link isimli bir değişkene atadın. O zaman "sayfa_sonu.php" dosaysına şunları yazman yeterli olacaktır:

 
<?php
if (is_resource($link)) {
mysql_close($link);
}


Bu mesaja 1 cevap geldi.
A
7 yıl
Teğmen
Konu Sahibi

quote:

Orijinalden alıntı: snoppy

Normalde böyle birşeye gerek kalmaması lazım. Sayfanın en başında veritabanı bağlantısı yapılır, veritabanı işlemleri yapılır ve bağlantı kapatılır. Sayfanın geri kalanında yeniden veritabanı bağlantısı açılmaz, açılmaması lazım.

Yine de sorduğun soruya karşılık şöyle cevap verebilirim. Eğer ".htaccess" dosyası kullanıyorsan aşağıdaki satırı bu dosyaya gir:

php_value auto_append_file "/includes/sayfa_sonu.php"


"sayfa_sonu.php" dosyası senin bütün php sayfalarının sonunda otomatik olarak çalıştırılacak. İşte bu dosya içerisinde if-else ile veritabanı bağlantı kontrolü yapabilirsin. Diyelimki sayfa ilk açıldığında veritabanı bağlantısını mysql_connect() ile yapıp sonucu da $link isimli bir değişkene atadın. O zaman "sayfa_sonu.php" dosaysına şunları yazman yeterli olacaktır:

 
<?php
if (is_resource($link)) {
mysql_close($link);
}
Çok teşekkürler. Bağlantıyı kontrol etmeye çalışmak yerine değişken boş bu değil mi diye bakmak en mantıklısı. Hiç aklıma gelmemiş. işte akıl akıldan üstündür bu oluyor çok teşekkürler. gerçi o zaman ben o olayı farklı bir şey ile çözmüştüm ama nasıl çözmüştüm hatırlayamadım çok uzun zaman oldu. yinede çok teşekkürler yeni bir bakış açısı sahibi olmuş oldum...



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.