Thinkphp操作MsSQL心得

之前,在PHP程序員雷雪松的博客中已經(jīng)詳細(xì)的介紹了Linux下MsSQL擴展的安裝。本以為這個解決了以后,使用國內(nèi)優(yōu)秀的PHP框架ThinkPHP就會應(yīng)該比較順利的。但是在連接MsSQL數(shù)據(jù)庫的時候還是遇到了一些問題,網(wǎng)上解決的方案并不多。下面PHP程序員雷雪松就把ThinkPHP項目中鏈接MsSQL數(shù)據(jù)庫報錯和解決辦法總結(jié)出來分享給需要的朋友。

1、報錯”Undefined class constant ‘PDO::SQLSRV_ATTR_ENCODING”

具體的解決辦法為:將ThinkPHP\Library\Think\Db\Driver\Sqlsrv.class.php中第26行’PDO::SQLSRV_ATTR_ENCODING => PDO::SQLSRV_ENCODING_UTF8,’注釋掉即可。

2、報錯”SQLSTATE[IMSSP]: An unsupported attribute was designated on the PDO object”

具體的解決辦法為:將ThinkPHP\Library\Think\Db\Driver.class.php中第101行’$this->options[PDO::ATTR_EMULATE_PREPARES] ?= ? false’注釋掉即可。

3、如果原表名大寫則會報錯找不到表名

具體的解決辦法為:不管MsSQL數(shù)據(jù)庫表名是否小寫,在ThinkPHP項目中所有表名小寫。

下面附上ThinkPHP3.2中操作MsSQL的配置文件conf.php:

return array(

//'配置項'=>'配置值'

'DB_TYPE'=>'sqlsrv',// 數(shù)據(jù)庫類型

'DB_USER'=>'',// 用戶名

'DB_PWD'=>'',// 密碼

'DB_PORT'=>'',// 端口

'DB_PREFIX'=>'',// 數(shù)據(jù)庫表前綴

'DB_DSN'=>'dblib:host=IP地址:端口;dbname=數(shù)據(jù)庫名稱',

'DB_CHARSET'=>'utf8',// 字符集

);

在這個項目中,因為第一次使用ThinkPHP框架操作MsSQL數(shù)據(jù)庫一路不太順利。但還是學(xué)到了很多知識,也總結(jié)了一些道理。第一,實踐出真知,只有你嘗試了才知道對不對,這個對于PHP程序員太重要了,不同的環(huán)境,不同的系統(tǒng)都有可能出錯。第二,面對新的問題,一定要有耐心,有信心,有決心。把原理的東西搞清楚,把問題化解為自己會的一些知識點。第三,一定要認(rèn)清自己,沒有誰什么都會。不管你做PHP程序員有多長時間,總會遇到問題。一定要多和別人交流,多去借助外面的力量,多去查閱網(wǎng)上資料。最后,感謝ThinkPHP開發(fā)者,感謝為開源事業(yè)做貢獻(xiàn)的前輩們!

標(biāo)簽:PHP與sqlserver、PHP編程

來源:Thinkphp操作MsSQL心得

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容