0

我目前正在使用 Zend Framework (2) 在 PHP(5.3) 上开发应用程序。客户最近宣布目标数据库将是 MS SQL Server。

所以..我检查了几个数据库适配器选项:

PDO_MSSQL似乎已被弃用。

SQLSRV 仅适用于 Windows 服务器?

PDO_ODBC似乎是不同操作系统支持的正确选择。

任何建议在 Zend 中使用什么是正确的方法都将不胜感激。

4

4 回答 4

2

我曾经使用过http://php.net/manual/en/book.mssql.php并围绕它编写了我自己的 Zend Wrapper。这不是最简单的方法,但我想控制 MSSQL 和 MySQL 之间的所有细微差别。

但是以下设置不起作用吗?

resources.db.adapter                             = "sqlsrv"
resources.db.host                                = "localhost\SQLEXPRESS"
resources.db.dbname                              = "DatabaseName"
resources.db.isDefaultTableAdapter               = true 
resources.db.driver_options.ReturnDatesAsStrings = true

前段时间看到这样的提议。

顺便说一句,我们正在谈论的是 Zend Framework 1 还是 2?

于 2013-01-23T13:44:20.770 回答
1

将 freetds 与 pdo dblib 一起使用。我有一篇博客文章写了如何使用它(在 ZF1 中): http: //featurebug.blogspot.de/2011/04/linux-php-and-zend-framework-and-ms-sql.html

PS 没有适用于 linux/Mac OS X 的 sqlsrv

于 2013-01-23T18:19:29.600 回答
1

SQLSRV 仅适用于 Windows 服务器?

当然,PHP 包装库仅适用于 Windows。

PDO_MSSQL 似乎已被弃用。

你的意思是PDO_SQLSRV。你从哪里得到这些信息?您可以在PDO_SQLSRV中找到所需的信息

PDO_ODBC 似乎是不同操作系统支持的正确选择。

是的,请参阅适用于 Linux 的PDO_ODBCODBC 驱动程序 1.0

任何建议在 Zend 中使用什么是正确的方法都将不胜感激。

ZF2 从 2.1(alpha/ 或 beta ~ 下周)开始使用这两个驱动程序来支持这一点 阅读

于 2013-01-25T15:39:14.117 回答
0

蛮力策略.. SQLSRV 没有加载.. 因为它是外部驱动程序,根据 php 版本、VS 版本、SQL 服务器驱动程序有超过 15 种可能的构建..

所以..我全部下载并一一尝试

使用这样的 php 测试页面:

echo "is 'sqlsrv' loaded: " . (extension_loaded('sqlsrv')?'yes':'no') ;

最后一个工作之前的最后一个:)

Zend 的属性是resources.db.adapter = "sqlsrv"

我也被提示“Microsoft SQL Server 2012 Native Client”

但是..不知道如何在 Linux/Mac 上安装它

于 2013-01-24T08:27:48.273 回答