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

symfony2 dynamické připojení k databázi pomocí doktríny

Zdá se mi, že používání Doctrines ODM není správný způsob, jak k tomu přistupovat. Stále můžete používat Doctrine pro připojení k databázím a dotazování na ně. Ale pokud nemáte žádné třídy entit, použití správce entit se zdá být nevhodné.

Použít Doctrine pro správu připojení

Zde je návod, jak vytvořit připojení k databázi pomocí doktríny Connection třída:

/** @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))
);

Nyní můžete použít $connection jako jednoduché PDO objekt:

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

Tento kód můžete přidat jako službu aby byla dostupná všude.
Pokud se chcete připojit k jiné databázi pro jinou doménu, můžete doménu identifikovat pomocí tohoto kódu:

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

Pro přístup k doméně v akci udělejte toto:

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. Problém s přetrváváním java.util.Date do MySql pomocí Hibernate

  2. Jak extrahovat datum a čas z String Timestamp v Javě

  3. Výběr dostupných časových úseků pro konkrétní datum

  4. MySQL vs MariaDB vs Percona Server:Porovnání bezpečnostních funkcí