Thinkphp5下用php5.6連接(MSSQL)sqlsrv 數(shù)據(jù)庫(kù)出現(xiàn)“could not find driver(PDOException in Connection.php line 293)”的解決辦法
[重要通告]如您遇疑難雜癥,本站支持知識(shí)付費(fèi)業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時(shí)間哦!
今天淘寶的客戶來(lái)說(shuō),他一個(gè)站使用Thinkphp5建立的,中間還有asp的程序,做的各種api接口,感覺(jué)還挺復(fù)雜的,但是運(yùn)行某個(gè)界面的時(shí)候提示錯(cuò)誤,錯(cuò)誤是“could not find driver(PDOException in Connection.php line 293)”具體如下圖;
經(jīng)過(guò)詢問(wèn)得知,客戶是Thinkphp5+mssql+asp+PHP5.6整個(gè)的搭建,看錯(cuò)誤的原因,應(yīng)該是驅(qū)動(dòng)的問(wèn)題,想著是驅(qū)動(dòng)的問(wèn)題,那就解決驅(qū)動(dòng)嘍;以前站內(nèi)也寫過(guò)其他相關(guān)文章,具體站內(nèi)查看;??Thinkphp5下如何使用odbc連接sqlserver
網(wǎng)上資料都是各種介紹,各種說(shuō),基本上都是說(shuō)需要下載微軟的驅(qū)動(dòng)放在ext文件夾后,再在php.ini中增加如下配置:
[PHP_PDO_SQLSRV]
extension=php_pdo_sqlsrv_56_ts.dll
[PHP_SQLSRV]
extension=php_sqlsrv_56_ts.dll
最后重啟服務(wù)器即可,但我重啟了IIS甚至服務(wù)器依然無(wú)濟(jì)于事,這問(wèn)題就又來(lái)了,難道我下的東西有問(wèn)題?其實(shí)客戶當(dāng)時(shí)也設(shè)置了參數(shù),具體請(qǐng)看;
可是客戶也設(shè)置了,依然不通訊,那就說(shuō)明下載的有問(wèn)題,不光客戶的有問(wèn)題,我下載的東西也是有問(wèn)題;
經(jīng)過(guò)在大腦多種想象中,可能還是dll的參數(shù)問(wèn)題,可能就出現(xiàn)在32位以及64位上;原來(lái)微軟官方提供的microsoft drivers 3.2 for php for sql server并不支持64位的php版本,那就要找支持64位系統(tǒng)的,客戶也說(shuō)他下載的dll也是64位的,本想尋找32位的支持,一想客戶設(shè)置的64的系統(tǒng),干脆64的就哦了;
解決辦法如下:
1. 確保正確安裝sql server 2005 (客戶sql2005), 開(kāi)啟sql server的遠(yuǎn)程連接訪問(wèn),檢查防火墻,確認(rèn)在本地可以通過(guò)SQL Server Configuration Manager連接到服務(wù)器。
2. 修改 php.ini 開(kāi)啟相關(guān)擴(kuò)展(php_pdo.dll ,php_pdo_mssql.dll ,php_mssql.dll),重啟IIS或者Apache后,一定要用phpinfo()檢查是否成功加載;
3. 修改php.ini中:mssql.secure_connection = Off ,有的沒(méi)有這一項(xiàng),也有的是On,這一步可以忽略;
64位PHP加載sqlsrv 數(shù)據(jù)庫(kù)屬于知識(shí)付費(fèi)業(yè)務(wù):
延伸閱讀:
1、php.ini的extension_dir定位到C盤,所以也可以用絕對(duì)路徑引用,也可以修改成extension_dir=ext,然后就相對(duì)路徑引用即可,如extension=php_sqlsrv_56_nts.dll,具體看我上圖,經(jīng)過(guò)按照下圖的設(shè)置,客戶的站就解決了相關(guān)問(wèn)題;
2、PHP各種版本中TS和NTS是什么意思?有什么區(qū)別?
另外的解決辦法,關(guān)于PHP7.0的;
解決方法:
(1)php7.0以下版本
extension=php_pdo.dll extension=php_pdo_sqlite.dll
(2)、php7.0以上版本
extension=pdo extension=pdo_mysql
【備注】:擴(kuò)展開(kāi)啟之后一定要,重啟服務(wù)
問(wèn)題未解決?付費(fèi)解決問(wèn)題加Q或微信 2589053300 (即Q號(hào)又微信號(hào))右上方掃一掃可加博主微信
所寫所說(shuō),是心之所感,思之所悟,行之所得;文當(dāng)無(wú)敷衍,落筆求簡(jiǎn)潔。 以所舍,求所獲;有所依,方所成!