關於Thinkphp框架模型應用過程中出現的錯誤Undefined class constant MYSQL_ATTR_INIT_COMMAND


今天在用thinkphp框架做網站的時候,在調用model模型是意外發生Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S02]錯誤,

下面是我百度的結果,大部分說解決問題可以分為以下兩類:

1.

windows下iis7.5+php5.4.11(FastCGI)

缺少pdo,編輯php.ini

取消注釋:

extension=php_pdo_mysql.dll

重啟iis

PHP數據對象(PDO)擴展定義了一個輕型的一致的訪問數據庫的接口.每個實現了PDO接口的驅動程序像一般的擴展函數一樣展示數據庫相關的特性.不能用PDO函數本身執行任何數據庫函數,必須使用數據庫相關的驅動程序來訪問數據庫服務器.
PDO提供了一個數據訪問抽象層,意思是不需要知道正在使用什么數據庫,就可以用同樣的函數發布查詢和檢索數據.

2.修改代碼:

該種情況(Undefined class constant 'MYSQL_ATTR_INIT_COMMAND')是PHP5.3.0的BUG,參閱http://bugs.php.net/bug.php?id=47224 
解決辦法有兩種,一是改代碼
$pdb = new PDO("mysql:host=localhost;dbname=test", 'root');
$pdb->exec("SET NAMES utf8");
二就是升級你的PHP到更高的版本

 

對以上網友的解答我自己鼓搗了很久也沒有解決,最后在自己研究下發現解決辦法其實很簡單 :

tp操作模型與jsp中hibernait操作數據表相似,你要操作的模型名一定要與你的表名相對應,這是一種辦法

還有一種辦法是:protected $trueTableName    =   '';調用該語句操作真實數據表


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM