Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да създадете глобален конфигурационен файл?

Всеки има свои собствени предпочитания. Предпочитам да съхраня моите DB настройки в .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']);
}

И виола, имате прост и сигурен начин да настроите връзката с базата данни. Този клас е взет от PDO разширителен клас, така че ако не използвате PDO, трябва да промените този ред, но както можете да видите, получавате потребителското име и т.н. в $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 GUID/UUID

  2. mysql комбинира уникални ключове

  3. Как да разрешите отказан достъп за потребителя ‘root’@’localhost’ (използвайки парола:Да) Когато свържете MySQL база данни

  4. Как да получа идентификатора на множество вмъкнати редове в MySQL?

  5. Извличане на данни с йерархична структура в MySQL