麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > ThinkPHP > 正文

對thinkphp數據庫操作的片段理解

2024-09-09 15:19:45
字體:
來源:轉載
供稿:網友

thinkphp  操作數據庫有三個類:Db.class.php,DbMysql.class.php,Model.class.php

1.控制器中實例化數據庫模型

2.調用數據庫模型類中的方法(拿方法add來示例)

3.數據庫模型類中方法調用DbMysql.class.php  類中的方法,但實際上DbMysql.class.php 繼承了Db.class.php

實例化模型類就操作了很多操作,比如連接數據庫.

$user=M('User');

$user->data($data)->add();

就這兩步過程具體是怎么在執行呢?

一:在model中構造函數,執行了如下的操作

獲取數據庫模型的名稱,獲取數據庫的相關信息,如表名,表前綴,最后再調用model里面的db方法操作數據庫的連接

二:默認此時已經連接了數據庫,那么add()這個方法具體做了些什么事情?

add($data='',$options=array(),$replace=false){}

它做了三件事情:

1.分析add方法里面是否傳遞了參數

(1).如果$data為空,獲取當前對象的值,即data()方法返回的值

(2).如果為空報錯

(3).將對象返回的值在賦給變量$data,賦給_facade($data)被它處理

2.分析表達式:(實際上就是獲取數據庫表表名,模型的信息,where條件,limit等來為拼湊sql語句作準備)

(1).獲取表名,模型名(_parseOptions()該函數獲取所有數據庫操作的信息存入數組)

(2).拼湊sql:parseSql(),parseLock(),在Db.class.php中

通過獲取的數據庫sql相關信息,如where,limit,通過parsesql()函數處理替換SELECT%DISTINCT% %FIELD% FROM %TABLE%%JOIN%%WHERE%%GROUP%%HAVING%%ORDER%%LIMIT% %UNION%這個語句.

最后就變成了類似:SELECT * FROM `think_fenzhu` WHERE id=33 LIMIT 1

3.數據處理

4.執行插入操作(返回插入的id值)

執行插入理解:$this->db->add(); 調用Db.class.php  中的insert()方法

這是個人的片段理解,如有問題,請大牛諒解.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 97超视频在线观看 | www.99久久久 | 在线成人av| 黄色成人在线 | 亚洲极色| cosplay裸体福利写真 | 精品一区二区三区在线播放 | 91久久久久久亚洲精品禁果 | 国产免费一区二区三区视频 | 精品一区二区三区毛片 | 夜添久久精品亚洲国产精品 | 三级国产三级在线 | 黄色大片免费网站 | 欧美羞羞视频 | 日日草夜夜草 | 在线观看免费污视频 | 欧美性生交大片 | 性生活视频一级 | 草草视频在线播放 | 92自拍视频 | 日韩黄a| 久久精品视频日本 | 中国7777高潮网站 | 91色成人| 天天碰夜夜操 | 亚洲乱妇19p| 久久宗合色 | 精品久久久久久久久久久久久 | 色婷婷a v | 性欧美极品xxxx欧美一区二区 | 成人毛片视频在线观看 | 精品黑人一区二区三区国语馆 | 色七七亚洲 | 成人三级视频在线观看 | 视屏一区| 九九精品在线观看 | 91久久国产综合久久91猫猫 | 美国一级黄色毛片 | 成年人在线免费 | 亚洲日韩精品欧美一区二区 | 黄色片网站在线播放 |