Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Kết nối cơ sở dữ liệu động symfony2 sử dụng học thuyết

Đối với tôi, có vẻ như sử dụng Doctrines ODM không phải là cách đúng đắn để tiếp cận điều này. Bạn vẫn có thể sử dụng Doctrine để kết nối với cơ sở dữ liệu và truy vấn chúng. Nhưng nếu bạn không có lớp thực thể nào thì việc sử dụng trình quản lý thực thể dường như không phù hợp.

Sử dụng Doctrine để xử lý kết nối

Đây là cách bạn tạo kết nối với Cơ sở dữ liệu bằng học thuyết Connection lớp:

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

Bây giờ bạn có thể sử dụng $connection như một PDO đơn giản đối tượng:

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

Bạn có thể thêm mã này làm dịch vụ để làm cho nó có thể truy cập được ở mọi nơi.
Nếu bạn muốn kết nối với một cơ sở dữ liệu khác cho một miền khác, bạn có thể sử dụng mã này để xác định miền:

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

Để truy cập miền trong một hành động làm điều này:

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. Mẹo để cung cấp hiệu suất cơ sở dữ liệu MySQL - Phần một

  2. đặt giá trị mới cho ft_min_word_len FULLTEXT trong mysql

  3. Sắp xếp dữ liệu dựa trên Dấu thời gian mysql + PHP

  4. Cập nhật ứng dụng khách C # bất cứ khi nào cơ sở dữ liệu được cập nhật

  5. JPA Qyery để tìm các bản ghi giữa một phạm vi