Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara membuat file konfigurasi global?

Setiap orang memiliki preferensi mereka sendiri. Saya lebih suka menyimpan pengaturan DB saya di .ini di luar webroot dan kemudian memberikan nilai 0600 chmod, untuk mencegah siapa pun kecuali pemiliknya membacanya.

Contoh .ini akan terlihat seperti:

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

Kemudian Anda dapat menggunakan fungsi php parse_ini_file kemudian di konstruktor Anda, Anda baru saja membacanya dan menguraikannya menjadi array:

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']);
}

Dan viola, Anda memiliki cara yang sederhana dan aman untuk mengatur koneksi database Anda. Kelas ini diambil dari kelas extender PDO, jadi jika Anda tidak menggunakan PDO, Anda perlu mengubah baris itu, tetapi seperti yang Anda lihat, Anda mendapatkan nama pengguna dll di $settings Himpunan.

Saya akan SANGAT menghindari menyimpan semua jenis informasi basis data ke dalam CONSTANT atau GLOBAL variabel tipe. Dengan cara ini, $settings hanya tersedia untuk fungsi kelas itu dan tidak ada yang lain, memberikan sedikit tambahan lapisan keamanan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Membuat tabel dan masalah dengan kunci utama di Rails

  2. Upgrade Skema Online di MySQL Galera Cluster Menggunakan Metode RSU

  3. MYSQL Insert Dimana Tidak Ada dengan PDO

  4. Perbarui Bidang Saat Tidak Null

  5. Menghubungkan mysql dari jarak jauh melalui host gratis