Merhaba dostlar 2 adet dosya var config.php ve calistir.php
calistir.php dosyasını urlde her çalıştırdığımda sürekli config.php bağlantısı yapsın istemiyorum. Yeni ilk calistirmada tek seferlik config yapsın sonraki calistirmalarda yapmasın gereksiz yere her seferinde bağlantıistemiyorum nasıl yapabiliriz ?
config.php :
<?php
$servername = "localhost";
$username = "";
$password = "";
$dbname = "";
?>
calistir.php :
<?php
include 'config.php';
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Bağlantı hatası: " . $conn->connect_error);
}
?>
PHP Bilenler Soru ? Config
12
●460
- 03-03-2025, 01:03:39Bu sadece değişkenleri önbelleğe alır böyle değil.cmlndz adlı üyeden alıntı: mesajı görüntüle
- 03-03-2025, 01:12:11Veri tabanı bağlantısını her istekte çalıştırmalı ve algoritmik olarak her sorgu sonunda bağlantıyı kapatmalısınız. Çünkü siteye giren her bir tekil kullanıcı farklı isteklerde bulunacaktır, bu sebeple veri tabanına bağlanmalı. Veya kendinize ait cache sistemi yazmalısınız tabii bunu da kullanıcı girişlerinde vs. kullanamazsınız ve sitede dinamik içerikler varsa algoritma olarak baş etmeniz gereken tonlarca sorun çıkacaktır. Ayrıca düz mysqli yazmayı kimse için önermiyorum, çok daha iyi ve esnek orm modülleri varken, Doctrine/DBAL gibi.
Kısaca dediğiniz şey 3-4 satır kodla halledebilecek bir olay değil, olsaydı zaten max_connections hataları olmazdı büyük sitelerde. Bunu minimuma indirmek için dediğim mantıkları araştırmanız ve algoritma çalışması yapmanız şart. - 03-03-2025, 01:12:24
<?php session_start(); // Oturumu başlat if (!isset($_SESSION['db_baglandi'])) { include 'config.php'; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Bağlantı hatası: " . $conn->connect_error); } $_SESSION['db_baglandi'] = true; // Bağlantının kurulduğunu işaretle } else { echo "Veritabanı bağlantısı zaten kurulu, tekrar bağlanmadı."; } ?> - 03-03-2025, 01:12:42Performans kaygısı ile düşünüyorsanız, bunu yapmak gerçekten önemsizdir. Teknik açıdan config içinde ki değişkenleri calistir içine almak ile include etmek arasında hesaba katılmayacak seviyede fark vardır. Sorunuza gelecek olursak; calistir üzerinde bir kontrol ile include yapılabilr. Örnek veritabanı bağlantısı gereken bir kısım oldugu koşulda include yap diyebilirsiniz.