sql >> Databáze >  >> RDS >> Mysql

Jak správně nastavit připojení PDO

Cíl

Jak vidím, váš cíl je v tomto případě dvojí:

  • vytvořit a udržovat jedno/opakovaně použitelné připojení pro každou databázi
  • ujistěte se, že bylo připojení správně nastaveno

Řešení

Pro řešení připojení PDO bych doporučil použít jak anonymní funkci, tak tovární vzor. Jeho použití by vypadalo takto:

$provider = function()
{
    $instance = new PDO('mysql:......;charset=utf8', 'username', 'password');
    $instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $instance->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
    return $instance;
};

$factory = new StructureFactory( $provider );

Potom v jiném souboru nebo níže ve stejném souboru:

$something = $factory->create('Something');
$foobar = $factory->create('Foobar');

Samotná továrna by měla vypadat nějak takto:

class StructureFactory
{
    protected $provider = null;
    protected $connection = null;

    public function __construct( callable $provider )
    {
        $this->provider = $provider;
    }

    public function create( $name)
    {
        if ( $this->connection === null )
        {
            $this->connection = call_user_func( $this->provider );
        }
        return new $name( $this->connection );
    }

}

Tímto způsobem byste měli mít centralizovanou strukturu, která zajišťuje, že připojení je vytvořeno pouze v případě potřeby. Také by to značně usnadnilo proces testování a údržby jednotky.

Poskytovatel by se v tomto případě našel někde ve fázi bootstrapu. Tento přístup by také poskytl jasné místo, kde definovat konfiguraci, kterou používáte pro připojení k DB.

Pamatujte, že toto je extrémně zjednodušený příklad . Můžete také využít sledování dvou následujících videí:

Také bych důrazně doporučil přečíst si správný návod o používání PDO (online je protokol špatných výukových programů).



  1. Použití výstupních parametrů uložené procedury v C#

  2. Rails, PostgreSQL a spouštěče historie

  3. php / Mysql nejlepší stromová struktura

  4. Jak exportovat seznam propojených tabulek do Excelu z Accessu 2016