在使用thinkphp時,如果資料庫表命名有大寫,會被轉換成小寫加下劃線(可以使用$model->_sql())來檢視實際執行的sql是什麼
這個問題,看了一下源**,在 thinkphp/common/common.php裡面,這個函式會將資料表(或檢視)的大寫字母轉換為下劃線+小寫:
1function parse_name($name, $type=0) else
10 }
另外,在 thinkphp/core/model.class.php裡面,會將整個表名轉換成小寫:
1public
function
gettablename() else9//
10$this->truetablename = strtolower($tablename
);11
//$this->truetablename = $tablename;12}
13return (!empty($this->dbname)?$this->dbname.'.':'').$this->truetablename;
14 }
這樣有好處——規範。
但是在我們的開發中,有大寫的資料表,所以改了一下(注釋的那些)...
或者可以在模型定義裡面加上:
protected
$truetablename
='mytablename';
來覆蓋$this->truetablename
資料庫的一些問題
什麼是事務?事務的acid特性 事務的併發控制可能產生哪些問題 為了解決併發控制,定義了4種事務隔離級別 mysql innodb預設實現可重複讀級別 如何解決高併發場景下的插入重複 什麼是樂觀鎖,什麼是悲觀鎖 innodb vs myisam常見的區別 為什麼需要索引?查詢結構進化史 什麼是b t...
資料庫建表遇到的一些問題
1 mysql中datetime date和timestamp型別的區別 2 修改語句及注釋 alter table 原表名 rename to 審計計畫 計畫統計 comment oncolumn planning.表名.呵呵呵呵is 呵呵主鍵,呵呵mmdd comment oncolumn pl...
資料庫設計的一些問題
原則 如果列中要儲存的資料長度差不多一致的,則因該考慮用char 否則因該考慮用varchar。如果列中的最大資料長度小於50byte,則一般也考慮用char。當然如果這個列很少用,則基於節省空間和減少i o的考慮,還是可以選擇varchar 一般不宜定義大於50byte的char型別列。原則 de...