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

Mencoba membangun kelas basis data statis yang dapat saya akses dari fungsi apa pun di luar kelas

Agar kelas Anda beroperasi secara statis, Anda perlu melakukan beberapa hal.

Pertama, buat koneksi statis, mis

private static $connection;

Kedua, mengapa semua garis bawah?

define('DB_HOST', 'localhost');
define('DB_NAME', 'your_db_name');
define('DB_USER', 'username');
define('DB_PASS', 'password');

Juga, mengapa menggunakan konstanta kelas sama sekali? Cukup gunakan konstanta yang telah Anda tentukan.

Ketiga, kehilangan konstruktor. Anda tidak dapat mengharapkan untuk membuat instance dari kelas ini dan menggunakannya secara statis. Saya akan menggunakan pendekatan pemuatan lambat untuk koneksi

private static function getConnection() {
    if (self::$connection === null) {
        $dsn = sprintf('mysql:host=%s;dbname=%s;charset=utf8',
            DB_HOST, DB_NAME);

        self::$connection = new PDO($dsn, DB_USER, DB_PASS, array(
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_EMULATE_PREPARES => false,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
        ));
    }
    return self::$connection;
}

Kemudian, metode publik Anda akan memanggil metode ini secara internal. Saya juga akan menyempurnakan dbDataArray Anda metode untuk menunjukkan kepada Anda cara mengembalikan array asosiatif

public static function dbDataArray($query, $params = array()) {
    $stmt = self::getConnection()->prepare($query);
    $stmt->execute($params);
    return $stmt->fetchAll();
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cara mengatur nilai default untuk jenis teks di mysql

  2. Bagaimana Anda menggunakan klausa WITH di MySQL?

  3. Alat Visualisasi MySQL

  4. Bermigrasi dari replikasi tradisional ke GTID

  5. Canonical:Bagaimana cara menyimpan data formulir HTML ke dalam database MySQL