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

symfony2 динамична връзка с база данни с помощта на doctrine

Струва ми се, че използването на Doctrines ODM не е правилният начин за подход към това. Все още можете да използвате Doctrine, за да се свързвате с бази данни и да ги правите заявки. Но ако нямате класове на обекти, използването на мениджър на обекти изглежда неподходящо.

Използвайте Doctrine за обработка на връзки

Ето как създавате връзка с база данни с доктрината Connection клас:

/** @var \Doctrine\Bundle\DoctrineBundle\ConnectionFactory $connectionFactory */
$connectionFactory = $this->getContainer()->get('doctrine.dbal.connection_factory');
$connection = $connectionFactory->createConnection(
    array('pdo' => new \PDO("mysql:host=$hostname;dbname=$dbname", $username, $password))
);

Сега можете да използвате $connection като обикновен PDO обект:

$connection->executeQuery('SELECT * FROM your_table');

Можете да добавите този код като услуга за да го направите достъпен навсякъде.
Ако искате да се свържете с различна база данни за различен домейн, можете да използвате този код, за да идентифицирате домейна:

$this->getRequest()->getHost();

За достъп до домейна чрез действие направете това:

public function yourAction(Request $request, /* ... */)
{
    // the Controller extends the Container. So need to get it here:
    $connectionFactory = $this->get('doctrine.dbal.connection_factory');

    // also access the domain like this:
    $domain = $request->getHost();
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL, където колона ='x, y, z'

  2. Как да възстановим една MySQL таблица с помощта на mysqldump?

  3. Проблем с MySQL LAG/LEAD

  4. Възможно ли е това да се получи общ брой редове с ограничение за отместване

  5. Не може да се направи JDBC връзка