sql >> Database teknologi >  >> RDS >> Mysql

Genbrug MySQL-forbindelse PHP-objektarv

Mysqli-forbindelsen er nem nok at dele mellem instanser ved at oprette den én gang i din bootstrap-fil og derefter videregive den til instanser, der har brug for det, f.eks.

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

Det vil effektivt begrænse forbindelsen til en, og du behøver ikke at ty til globaler inde i dine objekter. Dette kaldes Dependency Injection og bør være din foretrukne måde at tildele afhængigheder til objekter. Det gør afhængigheder eksplicitte og nemme at udskifte og gavner dermed ændringer, test og vedligeholdelse.

Hvad angår din import- og eksportopgave, undrer jeg mig over, hvorfor du overhovedet gør dette i PHP. Det er tilsyneladende den samme databaseserver, så du kan bare gøre det inde i din MySql-instans. Hvis du vil gøre det med PHP, ville jeg nok gøre noget som dette:

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

Du kan udtrække import- og eksportmetoderne i deres egne klasser og derefter bruge en slags Sammensat Kommandomønster , men det afhænger virkelig af, hvor modulært du har brug for dette.



  1. MySQL InnoDB frigiver ikke diskplads efter sletning af datarækker fra tabellen

  2. Opret en Postgresql-tabel fra Avro Schema i Nifi

  3. Er det muligt at optimere forespørgslen ved at bruge EXISTS i stedet for IN-klausulen med DISTINCT

  4. hvilken type motor (InnoDB eller MyISAM) skal jeg bruge til min database til et websted?