php – 连接主义2到MSSQL对于SYMFONY 2在Linux上

我试图使用Doctrine 2(Symfony 2)从 linux机器连接到MSsqlServer.

我已经安装了pdo_dblib(用于FreeTDS / Sybase DB-lib的PDO驱动程序),并且能够通过命令行上的tsqlPHP 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框…不完全是我有心里!).

在linux下(至少基于Debian的发行版),PHP需要PHP5-sybase软件包来支持Sybase和MSsql.

如果您正在使用基于debian的发行版,您将需要做

$sudo apt-get install PHP5-sybase
$sudo service apache2 restart

PHP -r "PHPinfo();" | grep "PDO drivers"

应该给你

PDO drivers: dblib,MysqL,sqlite,…

dblib其实是我们需要的

现在可以使用这个驱动与Doctrine,这篇文章
Doctrine 2 – How to add custom DBAL driver?帮我找到答案.

OP建议使用这个使事情一起工作的bundle on git.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...