微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.

原文地址:https://www.jb51.cc/php/132511.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐