Doctrine 2.0,连接到多个数据库

时间:2012-10-10 15:25:50

标签: php pdo doctrine-orm sql-server-2008-r2

我在项目上遇到了一些麻烦。

我目前正在尝试将Doctrine 2.0用于PHP项目 为了您的信息,我没有安装symphony或zend。

服务器是MSSQLServer 2008 R2,我正在使用php_pdo_sqlsrv驱动程序。

我的问题与我的连接配置有关。

实际上,我只需配置与服务器主机的连接,并仅在我的Entities类中集成数据库名称。

对于我的测试,我使用以下代码进行连接,实例化我的EntityManager并获取我的实体:

// the connection configuration
$dbParams = array(
    'driver'   => 'pdo_sqlsrv',
    'user'     => 'my_user',
    'password' => 'my_pass',
    'dbname'   => 'dbtest',
    'host' => 'hostname'
);

$config = Doctrine\ORM\Tools\Setup::createAnnotationMetadataConfiguration($paths,     $isDevMode);
$em = EntityManager::create($dbParams, $config);


$entity = $em->find('myEntity', 1);
echo $entity->getLibelle();

以下,我的班级实体

/**
 * @Entity
 * @Table(name="tableEntity")
 */
class Entity
{
    /** @Id @Column(type="integer") @GeneratedValue */
    private $ID_ENTITY;

    /**
     * @Column(type="string")
     */
    private $LIBELLE;

    public function __construct($name)
    {
        $this->LIBELLE = $LIBELLE;        
    }

    public function getID_ENTITY()
    {
        return $this->ID_ENTITY;
    }

    public function getLibelle()
    {
        return $this->LIBELLE;
    }
}

通过这种配置,我没有遇到麻烦,我的“libelle”显示没有问题 但我想做什么(也许这是一个梦想?)并没有配置dbname,如:

// the connection configuration without dbname
$dbParams = array(
    'driver'   => 'pdo_sqlsrv',
    'user'     => 'my_user',
    'password' => 'my_pass',
    'host' => 'hostname'
);

并在实体中集成dbname,例如:

/**
* @Entity
* @Table(name="DBNAME.tableEntity")
*/

有什么问题吗? 非常感谢您的帮助!

0 个答案:

没有答案