一.TP5數據庫操作方法
? ? 1.name()方法
? ? ? ? 作用 : 指定默認的數據表名(不含前綴)
? ? ? ? 示例 : Db::name('weiba_post');
? ? ? ? 返回 : Db對象
? ? ? ??
? ? 2.setTable()方法
? ? ? ? 作用 : 指定默認數據表名(含前綴)
? ? ? ? 示例 : Db::setTable('op_weiba_post');
? ? ? ? 返回 : Db對象
? ??
? ? 3.getTable()方法
? ? ? ? 作用 : 得到當前或者指定名稱的數據表(有前綴)
? ? ? ? 示例 : Db::getTable('weiba_post'); //返回op_weiba_post,帶有表前綴,并且轉換成了C風格
? ? ? ? ? ? ? ?Db::getTable(); ?//返回由setTable()設置的表名稱(官方所說的是返回 "當前" 表名稱).
? ? ? ? 返回 : 表名(字符串)
? ??
? ? 4.parseSqlTable()方法
? ? ? ? 作用 : 將SQL語句中的__TABLE_NAME__字符串替換成帶前綴的表名(小寫)...此方法一般用不到,主要用于Db類自己調用
? ? ? ? 示例 : Db::parseSqlTable(__WEIBA_POST__); //返回op_weiba_post,帶有表前綴,并且轉換成了小寫
? ? ? ? 返回 : 表名(字符串)
? ??
? ? 5.query()方法?
? ? ? ? 參數 :?
? ? ? ? ? ? 1.$sql ? ? ? ? ?命令字符串[必填],?
? ? ? ? ? ? 2.$bind=[] ? ? ?綁定參數,默認空數組[選填],?
? ? ? ? ? ? 3.$master=false,服務器序號(主從服務器有效),如果數據庫沒有配置主從服務器.則db類忽略該參數.一般用不到.[選填]
? ? ? ? ? ? 4.$class = false返回值處理方式.默認直接返回
? ? ? ? ? ? ? ? true : PDO對象
? ? ? ? ? ? ? ? 類名 : 當前類處理
? ? ? ? ? ? ? ? '' ? : 不做任何處理.直接返回
? ? ? ? ? ??
? ? ? ? 作用 : 執行查詢 返回數據集(查詢)
? ? ? ? 示例 : Db::query($sql); ? //返回查詢結果
? ? ? ? 返回 : 返回查詢結果(數組或對象)
? ? 6.execute()方法
? ? ? ? 參數 : ?$sql, $bind = [], $getLastInsID = false, $sequence = null
? ? ? ? ? ? 1.$sql ? ? ? ? ?命令字符串[必填],?
? ? ? ? ? ? 2.$bind=[] ? ? ?綁定參數,默認空數組[選填],?
? ? ? ? ? ? 3.$getLastInsID=false ?是否返回上次插入的ID.如果true則返回上次上次插入ID.false返回影響行數.默認為false.[選填]
? ? ? ? ? ? 4.$sequence=null 如果沒有為參數 sequence 指定序列名稱,則返回一個表示最后插入數據庫那一行的行ID的字符串。如果為參數 sequence 指定了序列名稱,則返回一個表示從指定序列對象取回最后的值的字符串。如果當前 PDO 驅動不支持此功能,則觸發一個 IM001 SQLSTATE 。
? ? ? ? ? ?
? ? ? ? 作用 : 執行語句(編輯)
? ? ? ? 示例 : Db::execute($sql); //返回一個整型的數字
? ? ? ? 返回 : 返回編輯結果,
? ? ? ??
? ? 7.getLastInsID()方法
? ? ? ? 作用 : 獲取最近插入的ID
? ? ? ? 示例 : $id = Db::getLastInsID()
? ? ? ? 返回 : ID
? ? ? ??
? ? 8.getLastSql()方法
? ? ? ? 作用 : 獲取最近一次查詢的sql語句
? ? ? ? 示例 : $sql = Db::getLastSql()
? ? ? ? 返回 : sql命令,字符串類型
? ? ? ??
? ? 9.transaction()方法 ? ? ? php好強大...
? ? ? ? 參數 : 1.$callback,回調函數[可選]
? ? ? ? 作用 : 執行數據庫事務,回調函數執行成功則提交事務,否則回滾
? ? ? ? 示例 : Db::transaction($this->update($data));
? ? ? ? 返回 : 回調函數的返回值
? ? ? ??
? ? 10.startTrans()方法
? ? ? ? 作用 : 開啟事務
? ? ? ? 示例 : Db::startTrans()
? ? ? ? 返回 : 失敗返回假,成功無返回值,注意false跟null的區別(===)
? ? ? ??
? ? 11.commit()方法
? ? ? ? 作用 : 用于非自動提交狀態下面的查詢提交
? ? ? ? 示例 : Db::commit()
? ? ? ? 返回 : 無返回值
? ? ? ??
? ? 12.rollback()方法
? ? ? ? 作用 : 事務回滾
? ? ? ? 示例 : Db::rollback();
? ? ? ? 返回 : 無返回值
? ? ? ??
? ? 13.batchQuery()方法
? ? ? ? 參數 : 就一個.類型必須是數組.否則直接返回假
? ? ? ? 作用 : 批處理執行SQL語句,強制認為是編輯操作,內部啟動了事務.也就是說要么都成功.要么都失敗(失敗會拋出一個異常)
? ? ? ? 示例 : Db::batchQuery($arr);//參數是sql命令數組
? ? ? ? 返回 : 總是返回true
? ? ? ??
? ? 14.getConfig()方法
? ? ? ? 作用 : 返回數據庫配置參數
? ? ? ? 示例 : $config = Db::getConfig();
? ? ? ? 返回 : 配置信息
? ? ? ??
? ? 15.getPartitionTableName()方法
? ? ? ? 作用 : 得到分表的的數據表名(用到再說吧.說不定要改寫.)
? ? ? ? 示例 :?
? ? ? ? 返回 : 表名
? ? ? ??
? ? 16.value()方法
? ? ? ? 參數 : 1.字段.2默認值
? ? ? ? 作用 : 得到某個字段的值
? ? ? ? 示例 : Db::table('op_user')->value('uid' , false);
? ? ? ? 作用 : 得到某個字段的值
? ? ? ??
? ? 17.column()方法
? ? ? ? 參數 :?
? ? ? ? ? ? 1.字段名.多個用逗號隔開[必填]
? ? ? ? ? ? 2.索引字段[選填]
? ? ? ? 作用 : 得到某個列的數組
? ? ? ? 示例 : 不想寫
? ? ? ? 作用 : 這就是value()方法組團來的...
? ? ? ??
? ? 18.count()方法
? ? ? ? 參數 : 他的參數默認是*,建議以后使用的時候用0
? ? ? ? 作用 : COUNT查詢,數量
? ? ? ? 示例 : Db::table('op_user')->count(0);
? ? ? ? 返回 : 數量
? ? ? ??
? ? 19.sum()方法
? ? ? ? 參數 : 默認是*.建議改
? ? ? ? 作用 : 求和
? ? ? ? 示例 : Db::table('op_user')->sum('uid'); ?//uid的總數,好神奇的需求...
? ? ? ? 返回 : 數量
? ? ? ??
? ? 20.min()方法
? ? ? ? 參數 : 默認是*.建議改
? ? ? ? 作用 : 求最小值
? ? ? ? 示例 : Db::table('op_user')->min(`uid`); ?//最小uid
? ? ? ? 返回 : 字段值
? ? ? ??
? ? 21.max()方法
? ? ? ? 參數 : 默認是*.建議改
? ? ? ? 作用 : 求最大值
? ? ? ? 示例 : Db::table('op_user')->max(`uid`); ?//最大uid
? ? ? ? 返回 : 字段值
? ? ? ??
? ? 22.avg()方法
? ? ? ? 參數 : 默認是*.建議改
? ? ? ? 作用 : 求平均值
? ? ? ? 示例 : Db::table('op_user')->avg(`uid`); ?//最大uid
? ? ? ? 返回 : 字段值
? ??
? ? 23.setField()方法
? ? ? ? 參數 : 可以是數組,也可以是字符串
? ? ? ? 作用 : 修改某一字段的值(內部調用的update)
? ? ? ? 示例 :?
? ? ? ? ? ? Db::table('op_user')->where(['uid'=>1])->setField('phone' , '110');
? ? ? ? ? ? Db::table('op_user')->where(['uid'=>1])->setField(['phone' => '110']);
? ? ? ? 返回 : 影響行數
? ? ? ??
? ? 24.setInc()方法
? ? ? ? 參數 :?
? ? ? ? ? ? 1.$field:同setField().歸根結底還是調用的update
? ? ? ? ? ? 2.$step : 增長值
? ? ? ? ? ? 3.$lazyTime : 延遲時間,大于0時才延遲
? ? ? ? 作用 : 延遲更新.保存在緩存中.Db類自動調用.
? ? ? ??
? ? 25.setDec()方法
? ? ? ? 參數 :?
? ? ? ? ? ? 1.$field:同setField().歸根結底還是調用的update
? ? ? ? ? ? 2.$step : 減少值
? ? ? ? ? ? 3.$lazyTime : 延遲時間,大于0時才延遲
? ? ? ? 作用 : 同setInc()方法
? ? ? ? ? ??
? ??
? ? 26.join()方法
? ? ? ? 參數 :?
? ? ? ? ? ? 1.表名,支持__WEIBA_POST__,
? ? ? ? ? ? 2.on條件.可以是字符串.也可以是數組.如果是數組連接用的and.
? ? ? ? ? ? 3.join類型.left,right,inner
? ? ? ? ? ? 注意.如果只傳一個參數,必須為數組.格式就是上面的三個值,否則報錯.
? ? ? ? 作用 : 關聯查詢
? ? ? ? 示例 :?
? ? ? ? ? ? Db::table('aa')->join('__BB__','aa.id=bb.id and aa.name=bb.name','left'); ? //aa left join bb on aa.id=bb.id and aa.name=bb.name
? ? ? ? ? ? Db::table('aa')->join('bb',['aa.id=bb.id','aa.name=bb.name'],'left'); ? ? ? ////aa left join bb on aa.id=bb.id and aa.name=bb.name
? ? ? ? ? ? Db::table('op_user as u')->field('u.uid')->join(['op_bz_binzhouq'=>'q'] , 'u.uid = q.uid' , 'left')->select(); ?//SELECT u.uid FROM op_user as u LEFT JOIN op_bz_binzhouq q ON u.uid = q.uid?
? ? ? ? ? ??
? ? ? ? ? ??
? ? 27.union()方法
? ? ? ? 參數 :?
? ? ? ? ? ? 1.$union,可以是數組,也可以是字符串
? ? ? ? ? ? 2.$all,有值UNION ALL ,否則為UNION
? ? ? ? 作用 : 合并結果集
? ? ? ? 示例 : Db::union($union , true);
? ??
? ? 28.field()方法
? ? ? ? 參數 :?
? ? ? ? ? ? 1.$field:true全部字段,字符串(自動去重)
? ? ? ? ? ? 2.真假,是否去重,如果$field是全部字符串(true)時,不支持去重.
? ? ? ? ? ? 3.$tableName:表名.會組成$tableName.$field的形式
? ? ? ? ? ? 后面還有倆參數...用不到了...
? ? ? ? ? ??
? ? ? ? 作用 : 指定field字段
? ? ? ? 示例 : Db::field('id, name' , 0,'user')->field('pid , pname , psex' , 0 , 'ping') //user.id , user.name , ping.pid , ping.pname , ping.psex
? ? ? ? ? ??
? ? 29.view()方法
? ? ? ? 參數 :
? ? ? ? ? ? 1.$join : 表名
? ? ? ? ? ? 2.$field : 字段名
? ? ? ? ? ? 3.$on : 關聯條件,同join方法
? ? ? ? ? ? 4.$type : 關聯類型.left.right
? ? ? ? ? ??
? ? ? ? 作用 : 該方法設置的字段會在前面加上表
? ? ? ? 示例 : ?Db::table('user')->field('uid' , 0 , 'user')->view('binzhour' , 'name' , 'user.uid=binzhour.uid' , 'left')->select(); ? ?
? ? ? ? ? ? ? ? //select `user`.`uid` , `binzhour`.`name` from `user` left join `binzhour` on `user`.`uid` = `binzhour`.`uid`;
? ? ? ??
? ? 30.partition()方法
? ? ? ? 參數 :?
? ? ? ? ? ? 1.data, ? ? ? ??
? ? ? ? ? ? 2.field,
? ? ? ? ? ? 3.rule[可選]
? ? ? ??
? ? ? ? 作用 : 設置分表規則,內部調用的getPartitionTableName()方法
? ? ? ? 示例 : 見getPartitionTableName方法
? ? ? ??
? ? 31.where()方法
? ? ? ? 參數 :?
? ? ? ? ? ? 1.field 查詢字段
? ? ? ? ? ? 2.op[可選] 查詢表達式
? ? ? ? ? ? 3.condition 查詢條件
? ? ? ? ? ??
? ? ? ? 作用 : 指定AND查詢條件.內部調用的 parseWhereExp()方法,
? ? ? ? 示例 : 詳見 parseWhereExp() 方法
? ? ? ??
? ? 32.whereOr()方法
? ? ? ? 參數 : 同where()方法
? ? ? ? 作用 : 指定OR查詢條件.與where唯一不同的是用or連接.內部調用的 parseWhereExp() 方法
? ? ? ? 示例 : 詳見 parseWhereExp() 方法
? ? 33.whereXor()方法
? ? ? ? 參數 : 同where()方法
? ? ? ? 作用 : 異或,兩邊布爾值相同為假.不同為真.內部調用的 parseWhereExp() 方法
? ? ? ? 示例 : 詳見 parseWhereExp() 方法
? ? 34.limit()方法
? ? ? ? 參數 :?
? ? ? ? ? ? 1.起始位置
? ? ? ? ? ? 2.查詢數量
? ? ? ? 作用 : 指定查詢數量
? ? ? ? 示例 : limit(0 , 20);
? ? ? ??
? ? 35.page()方法
? ? ? ? 參數 :?
? ? ? ? ? ? 1.頁數[必選]
? ? ? ? ? ? 2.每頁數量,[可選 20].
? ? ? ? 作用 : 指定分頁
? ? ? ? 示例 : page(1,20); ? ?//第一頁.每頁20條.
? ? ? ??
? ? 36.table()方法
? ? ? ? 參數 :?
? ? ? ? ? ? 1.表名
? ? ? ? 作用 : 指定當前操作的數據表
? ? ? ? 示例 : table('tableName')
? ? ? ??
? ? 37.using()方法(不知道用法...)
? ? ? ? 參數 :?
? ? ? ? ? ? 1.字段名
? ? ? ? 作用 : USING支持?
? ? ? ? 示例 : select a.*, b.* from a left join b using(colA); 等同于 select a.*, b.* from a left join b on a.colA = b.colA;
? ? ? ??
? ? 38.order()方法
? ? ? ? 參數 :?
? ? ? ? ? ? 1.字段名
? ? ? ? ? ? 2.排序
? ? ? ? 作用 : 排序
? ? ? ? 示例 : order('id','desc') 或者 order(['id'=>'desc','create_time'=>'desc'])
? ? ? ??
? ? 39.cache()方法
? ? ? ? 參數 :
? ? ? ? ? ? 1.緩存KEY.
? ? ? ? ? ? 2.緩存有效期.
? ? ? ? 作用 : 查詢緩存
? ? ? ? 返回對象...
? ? ? ? 示例 : cache('id' , 10)
? ? ? ??
? ? 40.group()方法
? ? ? ? 參數 : 1.字段名
? ? ? ? 作用 : 分組查詢
? ? ? ? 示例 :
? ? ? ??
? ? 41.having()方法
? ??
? ? 42.distinct()方法
? ??
? ? 43.alias()方法.別名
? ??
? ? 44.force()方法
? ? ? ? 參數 : 索引名
? ? ? ? 作用 : 強制使用索引,不使用其他索引
? ? ? ??
? ? 45.comment()方法
? ? ? ? 參數 : 注釋內容
? ? ? ? 作用 : 給sql命令寫注釋.
? ? ? ? 示例 : Db::name('bz_live')->comment('好無聊的方法')->find(); 等同于 SELECT * FROM `op_bz_live` LIMIT 1 ? /* 好無聊的方法 */
? ? ? ??
? ? 46.fetchSql()方法
? ? ? ? 參數 : 寫true
? ? ? ? 作用 : 返回sql語句
? ? ? ? 示例 : $sql = Db::name('bz_live')->fetchSql(true)->select(); ??
? ? ? ??
? ? 47.fetchPdo()方法
? ? ? ? 參數 : 寫true
? ? ? ? 作用 : 返回 PDOStatement 對象
? ? ? ? 示例 : Db::name('bz_live')->fetchPdo(true)->select();
? ? ? ??
? ? 48.strict()方法
? ? ? ? 參數 : true/false
? ? ? ? 作用 : 是否嚴格檢查字段名
? ? ? ? 示例 :?
? ? ? ??
? ? 49.failException()方法
? ? ? ? 參數 : true/false
? ? ? ? 作用 : 設置查詢數據不存在是否拋出異常
? ? ? ??
————————————————
版權聲明:本文為CSDN博主「Lovehmm」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/Lovehmm/article/details/53892857