Rob*_*nly 10 php linux sql-server symfony doctrine-orm
我试图使用Doctrine 2(用于Symfony 2)从Linux机器连接到MSSQLServer.
我已经安装了pdo_dblib(FreeTDS/Sybase DB-lib的PDO驱动程序),并且能够通过命令行上的tsql和php cli连接到数据库服务器.因此,我知道这是有效的.
在我的Symfony/app/config/parameters.ini文件中,我指定了database_driver ="pdo_sqlsrv"作为数据库驱动程序(因为我读到这将由其处理db_lib
)但是在尝试运行create database命令时(使用命令php app/console doctrine:database:create
)我我收到错误:
无法为连接命名创建数据库找不到驱动程序
然后我将驱动程序更改为database_driver="pdo_dblib"
,我现在收到错误:
[Doctrine\DBAL\DBALException]
给定的'driver'pdo_dblib未知,Doctrine目前仅支持以下驱动程序:pdo_mysql,pdo_sqlite,pdo_pgsql,pdo_oci,oci8,ibm_db2,pdo_ibm,pdo_sqlsrv
所以似乎连接到MSSQL我唯一的选择是pdo_sqlsrv
,所以我去安装它.但是,我刚刚在这里发现了那个
PDO_SQLSRV扩展仅与在Windows上运行的PHP兼容.
因此,由学说支持的驱动程序和可在linux上使用的驱动程序似乎是相互支持的.从搜索到目前为止我还没有找到任何解决这个问题的例子(一个人认为这个问题已经解决了,但是当我读到这个帖子时,他只是简单地将他的开发环境移到了一个窗口框中......不完全是我拥有的心里!).
在linux(至少基于Debian的发行版)下,php需要php5-sybase
支持Sybase和MSSql 的软件包.
如果您使用的是基于debian的发行版,则需要执行此操作
$ sudo apt-get install php5-sybase
$ sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)
和
php -r "phpinfo();" | grep "PDO drivers"
Run Code Online (Sandbox Code Playgroud)
应该给你
PDO驱动程序:dblib,mysql,sqlite,...
dblib
实际上是我们需要的
现在能够将此驱动程序与Doctrine一起使用,这篇文章: Doctrine 2 - 如何添加自定义DBAL驱动程序?帮我找到了答案.
归档时间: |
|
查看次数: |
20278 次 |
最近记录: |