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

Как правилно да настроите PDO връзка

Целта

Както виждам, целта ви в този случай е двойна:

  • създайте и поддържайте единична/многократна връзка за база данни
  • уверете се, че връзката е настроена правилно

Решение

Бих препоръчал да използвате както анонимна функция, така и фабричен модел за работа с PDO връзка. Използването му би изглеждало така:

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

След това в друг файл или по-ниско в същия файл:

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

Самата фабрика трябва да изглежда така:

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

}

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

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

Имайте предвид, че това е изключително опростен пример . Може също да се възползвате от гледането на два следните видеоклипа:

Също така силно препоръчвам да прочетете правилен урок относно използването на PDO (има дневник с лоши урок онлайн).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Предупреждение:Не може да се промени информацията за заглавката - заглавките вече са изпратени по грешка

  2. Как да използвате множество бази данни в Laravel

  3. Как да свържете множество редове в една колона в MySQL

  4. COUNT(*) от множество таблици в MySQL

  5. MySQL не може да добави ограничение за външен ключ