1. 程式人生 > >php5.6 連接SQL SERVER

php5.6 連接SQL SERVER

.dll ont pre 程序 使用 fat 文件 絕對路徑 com

PHP Fatal error:  Call to undefined function sqlsrv_connect() in
php鏈接sqlserver出現該錯誤;
原因是:php5.3 及以上版本去掉了以前的鏈接方式,要想使用,就需要使用PDO或者SQLSVR ,需要加上微軟提供的dll擴展。之前在網上看到有寫到php5.5鏈接SQL SERVER,覺得不夠詳細,
所以自己再寫一個php5.6的。 之前看到php5.5教程 http://blog.csdn.net/xocom/article/details/45840725

微軟官網提供的dll不支持64位,這裏有個非官方版本的下載鏈接 http://download.csdn.net/detail/tan1103/8771927

下載好之後解壓,其中x64文件夾裏面的是支持64位系統的,我們用的是php5.6版本
用到兩個文件
php_sqlsrv_56_nts.dll  和 php_pdo_sqlsrv_56_nts.dll
或者
php_sqlsrv_56_ts.dll  和 php_pdo_sqlsrv_56_ts.dll
那是用ts?還是nts呢?

技術分享


ts和nts的意思是:是否線程安全。和php版本有關,用phpinfo();查看,打印出phpinfo,找到Thread Safety,如果是disabled就是非線程安全,就用nts版本;
如果是enable就用ts版本,我的是nts。

技術分享


然後把相應版本的dll文件(我的是php_sqlsrv_56_nts.dll 和 php_pdo_sqlsrv_56_nts.dll)復制到php5.6\ext(擴展程序所在的文件夾,大多就在php的目錄的下);
然後在php.ini引進擴展,下面是我的引用路徑,D:\php5.6\ext\也是的擴展文件所在目錄

extension=D:\php5.6\ext\php_sqlsrv_56_nts.dll
extension=D:\php5.6\ext\php_pdo_sqlsrv_56_nts.dll
(我的php.ini的extension_dir定位到C:\盤,所以我需要用絕對路徑引用,也可以修改成extension_dir=ext,然後就相對路徑引用也行了,
如extension=php_sqlsrv_56_nts.dll,大多數是不用修改的,反正用絕對路徑準沒錯)
最後重啟服務(是apache的就重啟apache,iis就重啟iis),就OK了。

轉載:http://blog.csdn.net/qq_27396589/article/details/53374769

php5.6 連接SQL SERVER