Thinkphp操作MsSQL心得

來源:互聯網
上載者:User
之前,在PHP程式員雷雪松的部落格中已經詳細的介紹了Linux下MsSQL擴充的安裝。本以為這個解決了以後,使用國內優秀的PHP架構ThinkPHP就會應該比較順利的。但是在串連MsSQL資料庫的時候還是遇到了一些問題,網上解決的方案並不多。下面PHP程式員雷雪松就把ThinkPHP項目中連結MsSQL資料庫報錯和解決辦法總結出來分享給需要的朋友。

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資料庫表名是否小寫,在ThinkPHP項目中所有表名小寫。

下面附上ThinkPHP3.2中操作MsSQL的設定檔conf.php:

returnarray(

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

'DB_TYPE'=>'sqlsrv',// 資料庫類型

'DB_USER'=>'',// 使用者名稱

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

'DB_PORT'=>'',// 連接埠

'DB_PREFIX'=>'',// 資料庫表首碼

'DB_DSN'=>'dblib:host=IP地址:連接埠;dbname=資料庫名稱',

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

);

在這個項目中,因為第一次使用ThinkPHP架構操作MsSQL資料庫一路不太順利。但還是學到了很多知識,也總結了一些道理。第一,實踐出真知,只有你嘗試了才知道對不對,這個對於PHP程式員太重要了,不同的環境,不同的系統都有可能出錯。第二,面對新的問題,一定要有耐心,有信心,有決心。把原理的東西搞清楚,把問題化解為自己會的一些知識點。第三,一定要認清自己,沒有誰什麼都會。不管你做PHP程式員有多長時間,總會遇到問題。一定要多和別人交流,多去藉助外面的力量,多去查閱網上資料。最後,感謝ThinkPHP開發人員,感謝為開源事業做貢獻的前輩們!

標籤:PHP編程

來源:Thinkphp操作MsSQL心得

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.