Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak prawidłowo skonfigurować połączenie PDO

Cel

Jak widzę, twój cel w tym przypadku jest dwojaki:

  • utwórz i utrzymuj jedno/wielokrotne połączenie na bazę danych
  • upewnij się, że połączenie zostało prawidłowo skonfigurowane

Rozwiązanie

Do radzenia sobie z połączeniem PDO polecam używać zarówno funkcji anonimowej, jak i wzorca fabrycznego. Jego użycie wyglądałoby tak:

$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 );

Następnie w innym pliku lub niższym w tym samym pliku:

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

Sama fabryka powinna wyglądać mniej więcej tak:

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

}

W ten sposób uzyskasz scentralizowaną strukturę, która zapewnia, że ​​połączenie jest tworzone tylko wtedy, gdy jest to wymagane. Ułatwiłoby to również proces testowania jednostkowego i konserwacji.

Dostawca w tym przypadku zostałby znaleziony gdzieś na etapie ładowania początkowego. Takie podejście dałoby również jasne miejsce, w którym można zdefiniować konfigurację, której używasz do łączenia się z bazą danych.

Pamiętaj, że jest to niezwykle uproszczony przykład . Możesz również skorzystać z obejrzenia dwóch następujących filmów:

Ponadto gorąco polecam przeczytanie odpowiedniego samouczka o korzystaniu z PDO (w Internecie jest dziennik złych samouczków).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak znaleźć sortowania obsługiwane przez serwer w MySQL?

  2. Zarządzanie kontami użytkowników, role, uprawnienia, uwierzytelnianie PHP i MySQL -- Część 5

  3. Przywróć bazę danych mysql z plików .frm

  4. Osiągnij hierarchię, relacje rodzic/dziecko w skuteczny i łatwy sposób

  5. Uruchamianie plików MySQL *.sql w PHP