0

所以基本上这是我的问题。我正在寻找一种解决方案,让我们能够连接 SQL Express 2008,同时仍然使用 MDB2 作为我们的数据库抽象层。我需要这样的东西,主要是因为我们仍然需要能够使用 MySQL 和 Postgres(而且 ORM 在这个时候似乎不是一个选项)。

最好有一个适用于 PHP5.2 和 PHP5.3 的解决方案。

起初,我走上了 php_mysql 扩展之路……不过,似乎这在 PHP 5.3 中不可用。

php_pdo_mssql 似乎不适用于 MDB2,所以这似乎已经过时了。

最后,还有 MS 开发的“SQLSRV”扩展,虽然似乎曾经有过针对它的 MDB2“扩展”的工作,但它似乎从未进入主分支。

请问...有没有人有我的解决方案?

4

1 回答 1

0

对于其他正在寻找这方面信息的人......到目前为止,我已经让 SQL Express 2008 与在 PHP 5.2 下运行的 MDB2 一起工作。

我还没有尝试连接到远程服务器:到目前为止,我只连接到在 localhost 上运行的 SQL Express。

我不确定我使用的 PHP 是否附带 php_mssql.dll 扩展名:无论哪种方式,我都禁用了它。相反,我使用了从http://docs.moodle.org/en/Installing_MSSQL_for_PHP上的链接下载的 php_dblib.dll 。这个库是 FreeTDS 的构建(来自 freetds.org)。我还没有对它进行任何重大测试,但我可以连接到它,一位同事告诉我,他们在它方面取得了“实际”成功。

php_dblib.dll 为 php_mssql.dll 提供的 mssql_* 函数提供“替换”函数。因此,您需要在启用 php_dblib.dll 之前禁用 php_mssql.dll 扩展。

其他需要注意的小事:

1) 虽然大多数关于 SQL Express 和 PHP 的文档都声明您必须在数据库连接信息的主机部分中包含“实例”名称,但我发现这对我不起作用:事实上,我必须明确删除“\SQLEXPRESS”。

2) 虽然上面的 Moodle 链接提供了 php_dblib.dll 的 PHP 5.3 构建,但不幸的是它们是用 VC9 构建的。我安装的 PHP 5.3 是用 VC6 构建的,所以我仍在为 PHP 5.3 构建我自己的 php_dblib.dll。

无论如何,我希望这可以帮助遇到同样问题的人。

于 2010-04-06T11:53:34.503 回答