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

Gunakan kembali koneksi MySQL, warisan objek PHP

Koneksi mysqli cukup mudah untuk dibagikan antar instance dengan membuatnya sekali di file bootstrap Anda dan kemudian meneruskannya ke instance yang membutuhkannya, mis.

$mysqli = new mysqli(/* connection params */);
$someClassUsingMySqli = new SomeClassUsingMySqli($mysqli);
$anotherClassUsingMySqli= new AnotherClassUsingMySqli($mysqli);

Itu akan secara efektif membatasi koneksi ke satu dan Anda tidak perlu menggunakan global di dalam objek Anda. Ini disebut Injeksi Ketergantungan dan harus menjadi cara pilihan Anda untuk menetapkan dependensi ke objek. Itu membuat dependensi eksplisit dan mudah untuk ditukar dan dengan demikian menguntungkan perubahan, pengujian, dan pemeliharaan.

Adapun Tugas Impor dan Ekspor Anda, saya bertanya-tanya mengapa Anda melakukan ini di PHP sama sekali. Tampaknya server database yang sama, jadi Anda bisa melakukannya di dalam instance MySql Anda. Jika Anda ingin melakukannya dengan PHP, saya mungkin akan melakukan sesuatu seperti ini:

class MigrateForum
{
    private $dbConnector;

    public function __construct(DBConnector $dbConnector)
    {
        $this->dbConnector = $dbConnector;
    }

    public function migrate()
    {
        // orchestrate the migration (consider transactions)
        $this->exportOldForum();
        $this->importNewForum();
    }

    private function exportOldForum()
    {
        // code to export old_database_name.table_name 
    }

    private function importOldForum()
    {
        // code to import new_database_name.table_name 
    }
}

Anda dapat mengekstrak metode Impor dan Ekspor ke Kelas mereka sendiri dan kemudian menggunakan semacam Komposit Pola Perintah , tapi itu sangat tergantung pada seberapa modular Anda membutuhkannya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Permintaan untuk menemukan pelanggan dengan jumlah total pembelian tertinggi

  2. Apa perbedaan antara tipe string VARCHAR(255) dan TINYTEXT di MySQL?

  3. Perbedaan antara ajax normal dan polling panjang

  4. Bagaimana memilih hanya kamar yang tersedia pada sistem reservasi?

  5. Perbarui kolom di MySQL