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

Повторно използване на MySQL връзка Наследяване на PHP обект

Връзката mysqli е достатъчно лесна за споделяне между екземпляри, като я създадете веднъж във вашия начален файл и след това го предадете на инстанции, които се нуждаят от нея, напр.

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

Това на практика ще ограничи връзката до една и не е необходимо да прибягвате до глобали във вашите обекти. Това се нарича инжектиране на зависимости и трябва да бъде вашият предпочитан начин за присвояване на зависимости към обекти. Той прави зависимостите ясни и лесни за размяна и по този начин облагодетелства промяната, тестването и поддръжката.

Що се отнася до вашата задача за импортиране и експортиране, чудя се защо изобщо правите това в PHP. Очевидно това е един и същ сървър на база данни, така че можете просто да го направите във вашия MySql екземпляр. Ако искате да го направите с PHP, вероятно бих направил нещо подобно:

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 
    }
}

Можете да извлечете методите за импортиране и експортиране в техните собствени класове и след това да използвате някакъв вид Композитен Команден модел , но това наистина зависи от това колко модулно трябва да бъде това.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Highchart - Показване на JSON данни - MYSQL / PHP

  2. Вмъкване, актуализиране, изтриване на редове от jtable с mysql данни

  3. Как трябва да се справя с теглата на дублиращи се записи в индекса за търсене на MyISAM?

  4. Срив на MySQL при стартиране

  5. Какво е новото за без повече varchar(255)