v2.5.2
Giriş yap

Mysql Veritabanı Bağlantısı Neden Sonlandırılmalı

yazilimyolcusu
677 defa görüntülendi

Merhabalar arkadaşlar. Veritabanı bağlantısı oluştururken "null" kelimesini eklememiz gerekmesinin sebebi nedir acaba? Yani veritabanı bağlantısı açık kalmasın ki sistemi yormasın derler. Açık kalması sisteme nasıl bir yük getiriyor. Ve başka bir zararı var mıdır acaba? Mesela saldırılara karşı açık kapatma gibi tahmin ediyorum ama tam bilmiyorum. Bu arada aşağıdaki koda ben "null" eklemeden kod çalışıyor ama az önce "db=null" ekledim ve şu hatayı verdi.
"Fatal error: Uncaught Error: Call to a member function query() on null in C:\xampp\htdocs\site\slider.php:2 Stack trace: #0 C:\xampp\htdocs\site\index.php(16): include() #1 {main} thrown in C:\xampp\htdocs\site\slider.php on line 2"

<?php
   <?php $db = new PDO("mysql:host=localhost; dbname=dernek; charset=utf8", "root", ""); $db = null; ?>
?>
kargasa1982
1332 gün önce

sen sayfanın üzerinde DB bağlantısı yapıp da ardından hemen null kullanırsan sayfanın aşağılarında sorgu çalıştırmaya çalışırsan çalışmaz hata alırsın tabiki. null mutlaka kullan sonuçta kullandığın sistemin mysql ayarlarında bağlantı sayısı ve zaman aşımı süresi var. bunlar ne işe yarar dersen;

1) bağlantı sınırı (max_connection) : senin sisteminde her $db->connect olduğunda bir bağlantı açılır ve bu sınır diyelim ki sende 1000. aynı anda 1001 kişi girerse sistemin bağlantı hatası verir.
2) bağlantı zaman aşımı (connect timeout) : bu da sen eğer bağlantıyı kapatmazsan (null yapmazsan) ne kadar süre sonra aktif bağlantının kapanacağını belirler. bu süreyi azaltırsan uzun sorgularda timeout olursun, uzatırsan da kısa sorgularda boşuna bir bağlantı açık kalmış olur. sisteminde en iyiyi deneyerek bulursun.

yani bu durumda yapman gereken şey sayfanın üstünde db bağlantısı yapıp, sayfadaki tüm işler bitince yani sayfanın en altında $db = null yapman yeterli.