thinkphp無法識別數據表名大小寫問題

前段時間剛接觸thinkphp的時候,第一次使用就出現了數據庫表名大小寫的問題。thinkphp默認是將所有大寫改小寫,並在中間加一個_符號。
今天登陸csdn的時候看到一個月前自己發的求助貼。後來自己通過修改源代碼,能夠正常運行了,但是時間太久忘記自己是怎麼改的。這裏只說解決方法,沒有具體實現步驟。

出錯代碼

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
           $result=M('Praise');
        $a=$result->select();
        var_dump($a);
        die;
        $this->display();
    }
}

報錯是這樣的

1146:Table ‘MovierDC.praise’ doesn’t exist [ SQL語句 ] : SHOW COLUMNS FROM praise

在網上找到一個說法,修改配置項

'DB_PARAMS' => array(\PDO::ATTR_CASE => \PDO::CASE_NATURAL),

後來知道,都是一些人隨便複製粘貼回答別人問題搞錯了。
這是一個配置表中字段不區分大小寫的。

我查不到關於配置表名的配置項。所以我直接從源代碼入手(重點看報錯的地方),主要是兩個函數,一個是將字母全部轉換成小寫字母的函數,一個是拆分重組的函數。將轉換成小寫的函數去掉,拆分重組的函數也去掉。最後能用了。

發佈了42 篇原創文章 · 獲贊 38 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章