Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

वैश्विक कॉन्फ़िगरेशन फ़ाइल कैसे बनाएं?

सबकी अपनी-अपनी पसंद होती है। मैं अपनी डीबी सेटिंग्स को वेबूट के बाहर एक .ini में स्टोर करना पसंद करता हूं और फिर इसे 0600 chmod मान देता हूं, ताकि किसी को भी इसे पढ़ने वाले मालिक को रोका जा सके।

एक उदाहरण .ini इस तरह दिखेगा:

[database]
driver = mysql
host = localhost
;port = 3306
schema = yourdbname
username = dbusername
password = some_pass

फिर आप php फ़ंक्शन का उपयोग कर सकते हैं parse_ini_file फिर अपने कंस्ट्रक्टर में आपने उसे पढ़ा और उसे एक सरणी में पार्स किया:

public function __construct($file = 'dbsettings.ini')
{
    // @todo: change this path to be consistent with outside your webroot
    $file = '../' . $file;

    if (!$settings = parse_ini_file($file, TRUE)) throw new exception('Unable to open ' . $file . '.');

    $dns = $settings['database']['driver'] .
    ':host=' . $settings['database']['host'] .
    ((!empty($settings['database']['port'])) ? (';port=' . $settings['database']['port']) : '') .
    ';dbname=' . $settings['database']['schema'];

    // if not PDO, this part needs to be changed parent::__construct($dns, $settings['database']['username'], $settings['database']['password']);
}

और वायोला, आपके पास अपना डेटाबेस कनेक्शन सेटअप करने का एक सरल और सुरक्षित तरीका है। यह वर्ग पीडीओ एक्सटेंडर क्लास से लिया गया था, इसलिए यदि आप पीडीओ का उपयोग नहीं कर रहे हैं तो आपको उस लाइन को बदलने की जरूरत है, लेकिन जैसा कि आप देख सकते हैं कि आपको $settings में यूजरनेम आदि मिलता है। सरणी।

मैं किसी भी प्रकार की डेटाबेस जानकारी को CONSTANT . में संग्रहीत करने से अत्यधिक बचूंगा या GLOBAL चर प्रकार। इस तरह, $settings केवल उस वर्ग फ़ंक्शन के लिए उपलब्ध है और कुछ भी नहीं, अतिरिक्त सुरक्षा परत प्रदान करता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL तालिका -> क्या आप एक ही पंक्ति को एक ही क्वेरी में कई बार वापस कर सकते हैं?

  2. प्राथमिक में तालिका के विभाजन स्थान त्रुटि में सभी कॉलम शामिल होने चाहिए?

  3. org.hibernate.InstantiationException:इकाई के लिए कोई डिफ़ॉल्ट निर्माता नहीं::प्रिंसिपल। क्लाइंट

  4. MySQL क्वेरी कैशिंग:128 एमबी के अधिकतम कैश आकार तक सीमित है?

  5. MySQL केवल एक पंक्ति देता है