日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

PHP封装curd,CURD · TookPHP开发手册 · 看云

發布時間:2023/12/10 php 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP封装curd,CURD · TookPHP开发手册 · 看云 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

## CURD

* 開啟 DEBUG 模式后,所有SQL語句均會在調試窗口顯示,一目了然.

[TOC]

### find 單條查詢

通過 find 操作進行簡單的單條查詢操作。

~~~

//查找主鍵值為 18 的記錄

$db->find(18);

~~~

### all 查詢(別名 select)

通過 all 查找所有記錄數 。

~~~

//查找表中所有記錄

$list = M('news')->all();

~~~

### table 臨時改變表

通過 table() 方法可快速切換操作表

~~~

//改變操作表為 user

M('news')->table('user')->all();

~~~

### join 表關聯

使用 join() 可以快速實現表間關聯

~~~

//關聯 user 表與 role 表

$data =M('user')->alias('u')->field('u.*')->join('__role__ r ON u.rid=r.rid')->all();

//生成的查詢語句: select u.* from tb_user inner join tb_role r ON u.rid = r.rid;

~~~

### max 查找最大的值

查找年齡最大的用戶

M('user')->max('age');

### min 查找最小的值

~~~

//查找最便宜的商品

M('goods')->min('price');

~~~

### avg 求平均值

~~~

//查找商品平均價格

M('user')->avg('price');

~~~

### sum 求和

~~~

//獲得點擊數之和

M('news')->sum('click')

~~~

### count 統計操作

~~~

//統計會員總數

M('user')->count()

~~~

### field 字段集

~~~

//返回字段為 uid 與 username

$db->field('uid,username')->select();

//以數組形式傳參

$db->field(array('uid','username'))->select();

//更靈活的傳參

$db->field(array('uid','concat(username,"-",uid)'=>'userid','LEFT(username,7)'=>'name'))- >select();

//上面生成SQL: SELECT uid,concat(username,"-",uid) AS userid,LEFT(username,7) AS name FROM tb_user

~~~

### 字段排除

~~~

//獲得除 content,title 以外的所有字段

M('news')->field(array('title','content'),true)->all();

~~~

### limit 取部分數據

limit 方法就是為了生成 SQL 的 limit 部分

~~~

//查找第 2 條記錄開始的 5 條記錄

$db->limit('2,5')->all();

~~~

### order 排序

按 id 從大到小排序

$db->order('id desc')->all();

### getField 獲得指定字段值

按字段名獲得結果的方法

~~~

//獲取唯一字段值值

//無論結果有多少個只返回一個值

$db->where('id=32')->getField('title');

~~~

~~~

//滿足條件記錄的所有 title 字段

$db->where('id>2')->getField('title',true);

~~~

~~~

//兩個字段列表

//兩個字段時返回一維數組,第一個字段做為鍵名使用,第 2 個字段做為鍵值

$db->getField('id,title');

~~~

~~~

//多個字段時

//多個字段返回二維數組,第一個字段值做為鍵名使用,其余字段做為鍵值

$db->getField('id,title,click');

~~~

### group 分組操作

TookPHP框架提供了完善的分組操作方法,自由指定分組參數使發送 SQL 更容易

~~~

//按 id 與 name 分組查詢

$list =$db->group('id,name')->all();

//生成SQL: SELECT `id`,`name`,`sendtime` FROM tb_demo GROUP BY id,name

~~~

### having 分組條件

在 SQL 中增加 HAVING 子句原因是,WHERE 關鍵字無法與合計函數一起使用 , 所以

使用 HAVING 對分組進行條件篩選 , 所以在使用 HAVING 時應該使用 group 分組。

~~~

//獲得記錄條數大于 2 的 cid 值

M('news')->having('count(*) >2')->group('cid')->select();

~~~

### add 添加數據(別名 insert)

特點 :

自動過濾非法字段

自動對插入數據進行安全處理

沒有傳入參數時使用 $_POST 值

返回值為新增主鍵值或 true

~~~

//實例

$data=array('uname'=>'admin','url'=>'http://www.baidu.com');

$lastId = $db->add($data);

~~~

### ORM 屬性映射

~~~

$db->username = '李四';

$db->web = 'baidu.com';

$db->add();

~~~

### replace 添加數據

~~~

//數據中存在主鍵則更新否則添加數據。

$data =array('id'=>1,'name'=>'admin');

M('news')->replace($data);

~~~

### save 更新(別名 update)

**特點**

a. 自動過濾掉非法字段

b. 自動進行數據安全處理

c. 默認以 $_POST 數據更新

d. 必須有更新條件 , 防止誤更新

e. 如果參數中存在主鍵值將以這個值為條件進行更新數據

~~~

//uid 為表主鍵,使用數據中的主鍵為條件進行更新

$data=array('uid'=>9,'username'=>' 郭富城 ');

$db->save($data);

~~~

### setField 更新字段

如果只是更新個別字段的值,可以使用setField方法。

~~~

//更改用戶的name值

M("user")->where('id=5')->setField('name','TookPHP');

//生成SQL: update tb_user set name='TookPHP' where id=5

~~~

setField方法支持同時更新多個字段,只需要傳入數組即可,例如:

~~~

//更改用戶的name和email的值

$data = array('name'=>'TookPHP','email'=>'test@163.com');

M("user")->where('id=5')->setField($data);

~~~

### inc 增加值

注:

* 帶三個參數:inc($field, $where, $step)

* 帶兩個參數:inc($field, $step)

* 只帶一個參數:inc($field)

* $step 缺省值 1

~~~

//將 id 為 4 記錄的 total 加 1 ()

M('news')->inc('total','id=4',1);

//生成SQL: update tb_news set total=total+1 where id=4

//將 id 為 4 記錄的 total 加 1

M('news')->where('id=4')->inc('total');

//生成SQL: update tb_news set total=total+1 where id=4

//將 id 為 4 記錄的 total 加 100

M('news')->where('id=4')->inc('total',100);

//生成SQL: update tb_news set total=total+100 where id=4

~~~

### dec 減少值

用法同上 inc方法,唯一區別在于 inc用于增加值,dec用于減少值

~~~

//將 id 為 4 記錄的 total 減 1

M('news')->dec('total','id=4',1);

//生成SQL: update tb_news set total=total-1 where id=4

//將 id 為 4 記錄的 total 減 100

M('news')->where('id=4')->dec('total',100);

//生成SQL: update tb_news set total=total-100 where id=4

~~~

### del 刪除(別名 delete)

為了屏蔽誤刪除 del 方法必須指定條件

~~~

//刪除主鍵值為 58 的數據

M('news')->del(58);

//生成SQL: DELETE FROM tb_news WHERE id in(58)

~~~

### fieldExists 檢測表字段是否存在

~~~

//檢測 news 表是否存在 title 字段

$db->fieldExists('title','news');

~~~

### tableExists 檢測表是否存在

`M()->tableExists('category');`

### getVersion 獲得數據庫版本信息

`$db->getVersion();`

### getLastSql 獲得最后一條 SQL

$db->getLastSql();

### getAllSql 獲得所有 SQL 語句

`$db->getAllSql();`

### getAffectedRows 獲得受影響的行數

`$db->getAffectedRows();`

### getInsertId 獲得最后插入的主鍵值

~~~

$data=array('title'=>'標題');

$db->insert($data);

$db->getInsertId();

~~~

### getAllTableInfo 獲所有表信息

獲得當前數據庫的所有表信息 , 數據大小包括碎片、數據、索引

`M()->getAllTableInfo();`

### getDataBaseSize 獲得數據庫大小

獲得當前數據庫大小即所有表碎片、數據、索引之和

`M()->getDataBaseSize();`

### getTableSize 獲取表大小

~~~

//獲得 news 表大小 , 包含表碎片、數據、索引之和

M()->getTableSize('news');

~~~

### createDatabase 創建數據庫

~~~

//以 gbk 編碼創建數據庫 testdb

M()->createDatabase('testdb','gbk');

~~~

### truncate 清空表

~~~

//清空表 news 表并將自增數歸零

M()->truncate(news);

~~~

### repair 修復表

`M()->repair('user');`

### optimize 優化表

`M()->optimize('user');`

### rename 修改表名

~~~

//將 user 表更名為 tk_user 表

M()->rename('user','tk_user');

~~~

### dropTable 刪除表

`$db->dropTable('user');`

### beginTrans 開啟事務

~~~

//完成事務處理需要選擇表引擎如 InnoDB、NDB、BDB

$data=array('wages'=>100);

$db->beginTrans();// 開啟事務

$db->add($data);// 添加數據

$db->commit(); // 提交事務

~~~

### rollback 事務回滾

~~~

//當事務完整性被破壞或者其他原因可以通過 rollback 方法放棄本次事務操作

$db->rollback();

~~~

### 提交事務 commit()

~~~

//如果整個事務完成正確可以通過 commit() 進行事務的提交完成最終操作

$data=array('wages'=>100);

$db->beginTrans();// 開啟事務

$db->add($data);// 添加數據

$db->commit();// 提交本次事務

~~~

總結

以上是生活随笔為你收集整理的PHP封装curd,CURD · TookPHP开发手册 · 看云的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。