2011-05-18 70 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()