【问题标题】:Preferred method of accessing MS SQL with PHP 5.3+ on Linux在 Linux 上使用 PHP 5.3+ 访问 MS SQL 的首选方法
【发布时间】:2011-08-28 06:12:37
【问题描述】:

在 Linux 上使用 PHP 5.3+ 访问 Microsoft SQL Server 数据库的首选方法是什么?

鉴于现在可用的不同扩展选项,我不确定基于可靠性和性能首选哪种方法。现在我正在使用带有 FreeTDS 的 mssql 扩展,但我想知道这是否不是最好的方法。

我听说有人推荐使用 php-odbc/EasySoft,因为 mssql 扩展已被放弃 - 但其他人说使用 ODBC 路由不值得性能损失。

对这个 stackoverflow question 的回复似乎触及了我的要求,但它是以 Windows 为中心的。

谢谢!

【问题讨论】:

标签: php sql-server database linux


【解决方案1】:

我在使用 PHP 的 PDO(PHP 数据对象)库处理这类事情时取得了不错的效果。 http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/ 有一个很好的教程。只需确保使用以下模板来初始化数据库连接:

$dbh = new PDO("dblib:host=$host;dbname=$dbname", $user, $pass);

【讨论】:

  • 我同意 PDO 可能是一个更好的方法,但在这种情况下,我想知道哪个驱动程序最好? PDO_ODBC vs PDO_DBLIB vs Non-PDO mssql?在 Windows 和 Linux 上比较这些是苹果还是橘子?
  • 嗯,我喜欢 PDO,因为它很简单并且抽象了数据库连接的细节,因此您可以通过简单地更改驱动程序名称来将相同的代码用于不同的后端数据库。我通常倾向于在可能的情况下通过 ODBC 连接直接、本机连接到任何数据库,因为 ODBC 确实有更多开销并且安装和配置更复杂。至于 Windows 和 Linux 的比较,我没有在 Windows 上使用过 PHP,所以我恐怕帮不上忙。
【解决方案2】:

我使用 FreeTDS。这远远不能令人满意。实际上,我找到了您的问题,因为我希望必须有更好的解决方案,并且我一直在寻找一个。不幸的是,如果您在 Linux 环境中开发,FreeTDS 似乎是目前最好的选择。

如果您在 Windows 上,显然可以使用 Microsoft SQL Server 驱动程序进行 PHP,这会更好,但即使这样也缺少一些功能,例如对 PDO lastInsertId() 的支持。

【讨论】:

    猜你喜欢
    • 2013-12-01
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    相关资源
    最近更新 更多