合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
一.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 作用 : 设置查询数据不存在是否抛出异常