我已经安装了pdo_dblib(用于FreeTDS / Sybase DB-lib的PDO驱动程序),并且能够通过命令行上的tsql和PHP cli连接到db服务器.所以我知道这是工作.
在我的Symfony / app / config / parameters.ini文件中,我指定了database_driver =“pdo_sqlsrv”作为数据库驱动程序(正如我读到的,这将由db_lib处理),但是当尝试运行一个create database命令(使用命令PHP app / console doctrine:database:create)我收到错误:
Could not create database for connection named could not find driver
然后我将驱动程序更改为database_driver =“pdo_dblib”,我现在得到错误:
[Doctrine\DBAL\DBALException]
The given ‘driver’ pdo_dblib is unknown,Doctrine currently supports
only the following drivers: pdo_mysql,pdo_sqlite,pdo_pgsql,pdo_oci,
oci8,ibm_db2,pdo_ibm,pdo_sqlsrv
所以似乎连接到MSsql我唯一的选择是pdo_sqlsrv,所以我去安装这个.但是,I have just discovered here,那个
The PDO_sqlSRV extension is only compatible with PHP running on Windows.
因此,支持学说的驱动程序和可用于linux的驱动程序似乎是相互矛盾的.从搜索我还没有发现这个问题的任何实例到目前为止被解决(一个人把问题标记为已解决,但是当我阅读线程时,他只是将他的开发环境移动到一个Windows框…不完全是我有心里!).
如果您正在使用基于debian的发行版,您将需要做
$sudo apt-get install PHP5-sybase $sudo service apache2 restart
和
PHP -r "PHPinfo();" | grep "PDO drivers"
应该给你
dblib其实是我们需要的
现在可以使用这个驱动与Doctrine,这篇文章:
Doctrine 2 – How to add custom DBAL driver?帮我找到答案.
OP建议使用这个使事情一起工作的bundle on git.