2011-05-18 67 views
8

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

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

我听说过一些建议使用php-odbc/EasySoft,因为mssql扩展已经被放弃了 - 但其他人都说ODBC路由并不值得性能。

对此stackoverflow question的回应似乎触及我所问的,但它是以Windows为中心的。

谢谢!

+0

Microsoft提供的ODBC驱动程序似乎工作正常,请参阅:http://stackoverflow.com/a/37312824/55267 – 2016-06-02 12:32:57

回答

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); 
+0

我同意PDO可能是一个更好的方式去尽可能,但在这种情况下,我'想知道哪个车手最好? PDO_ODBC vs PDO_DBLIB vs非PDO mssql?在Windows和Linux上比较这些是苹果和橘子吗? – greglamb 2011-05-18 20:20:52

+2

嗯,我喜欢PDO,因为它很简单,并且抽象了数据库连接的细节,因此您可以通过更改驱动程序名称来使用与不同后端数据库相同的代码。 我通常会倾向于通过ODBC连接直接连接到任何数据库,因为ODBC确实有更多的开销,并且安装和配置更复杂。 至于比较Windows和Linux,我没有在Windows上使用PHP,所以我害怕我不能帮助那里。 – 2011-05-18 20:51:31

0

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

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