sql >> データベース >  >> RDS >> Mysql

doctrineを使用したsymfony2動的データベース接続

    DoctrinesODMを使用することはこれに取り組む正しい方法ではないように私には思えます。 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. 覚えている機能を実装する方法は?

    2. 非常に基本的なPHPとMysql

    3. MySQL5.1からメールを送信する方法

    4. 独自のアプリにAdminerをインストールする方法