TP5数据库操作方法

一.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
作用 : 设置查询数据不存在是否抛出异常

原文地址:https://www.cnblogs.com/xin521/p/9077025.html

时间: 2024-08-26 08:27:13

TP5数据库操作方法的相关文章

黄聪:Discuz!X/数据库操作方法、DB::table、C::t

函数 功能 DB::table($tablename) 获取正确带前缀的表名,转换数据库句柄, DB::delete($tablename, 条件,条数限制) 删除表中的数据 DB::insert($tablename, 数据(数组),是否返回插入ID,是否是替换式,是否silent) 插入数据操作 DB::update($tablename, 数据(数组)条件) 更新操作 DB::fetch(查询后的资源) 从结果集中取关联数组,注意如果结果中的两个或以上的列具有相同字段名,最后一列将优先.

C#-数据库访问技术 ado.net——创建 数据库连接类 与 数据库操作方法 以及简单的数据的添加、删除、修改、查看

数据库访问技术 ado.net 将数据库中的数据,提取到内存中,展示给用户看还可以将内存中的数据写入数据库中去 并不是唯一的数据库访问技术,但是它是最底层的数据库访问技术 1.创建数据库,并设置主外键关系 2.创建新的C#项目,创建 数据库连接类 与 数据库操作方法 a.引用数据库 using System.Data.SqlClient;    b.创建数据库连接类:先进行编写连接字符串,在实例化连接类 c.创建数据库操作方法(此处不是实例化类)    d.打开数据库 → 执行操作 → 关闭数据

ylb: 数据库操作方法基础

ylbtech-SQL Server:SQL Server-数据库操作方法基础 数据库操作方法基础. ylb: 数据库操作方法基础 返回顶部 ----------试图操作(view)--------------------- --创建视图 create view titles_view as select title,type from titles --调用视图 select * from titles_view --删除视图 drop view titles_view --修改视图 alte

常用的PHP数据库操作方法(MYSQL版)

http://www.cnblogs.com/cosiray/archive/2011/12/21/2295795.html 一.数据库操作 1. 连接MYSQL数据 mysql_connect() e.g. $conn = mysql_connect($HOST, $USER, $PASSWORD) or die(mysql_error()); 2. 选择数据库 mysql_select_db() 连接上mysql数据库后,还要选择需要使用的具体数据库database e.g. mysql_s

tp5数据库——链式操作

链式操作 数据库提供的链式操作方法,可以有效的提高数据存取的代码清晰度和开发效率,并且支持所有的CURD操作. 使用也比较简单,假如我们现在要查询一个User表的满足状态为1的前10条记录,并希望按照用户的创建时间排序 ,代码如下: Db::table('think_user') ->where('status',1) ->order('create_time') ->limit(10) ->select(); 这里的where.order和limit方法就被称之为链式操作方法,除

数据库操作方法总结

解决办法: 端口号错误. 初学者可以这么搞,坚持半年,效果显著. ? 释放资源的时候 我们需要从外往里面依次释放,与你声明的时候相反.就像人们穿衣服一样,然后脱衣服,效果类似. 有些sql语句没有参数,怎么办 遍历数组,需要判断,有些语句不需要赋值.所以需要先判断是否需要赋值,所以先判断是否为空. 参考资料:http://zhidao.baidu.com/link?url=wT5zIOjpPQzE3pfAjPC-DZAlnEAO89O2ihgLT8SpFCKaXtktcBELHO5iRKeasU

Discuz!X/数据库操作方法

DB::table($tablename) 获取正确带前缀的表名,转换数据库句柄, DB::delete($tablename, 条件,条数限制) 删除表中的数据 DB::insert($tablename, 数据(数组),是否返回插入ID,是否是替换式,是否silent) 插入数据操作 DB::update($tablename, 数据(数组)条件) 更新操作 DB::fetch(查询后的资源) 从结果集中取关联数组,注意如果结果中的两个或以上的列具有相同字段名,最后一列将优先. DB::fe

tp5 数据库相关操作笔记

这里如何连接多个数据库? 1,在conif.php文件中添加一个数据库配置(把database.php文件内容复制一份过来),这里取名为db2 2,在控制器的方法中使用 mysql中的参数绑定 mysql中占位符绑定 增删改查? 1 , 原生增删改查在TP中 直接使用Db::execute('原生语言') 2, 通过查询构造器实现增删改查 2.1 增 注意:如果想利用配置里面的表前缀 2.2 删 2.3 改 2.4 查 建议的查询方式? 特色查询? 1,如果如果某字段存的是时间戳,可以直接按照时

web.py数据库操作方法指南 -《狗嗨默示录》-

1. 导入模块,定义数据库连接db import web db = web.database(dbn='postgres', user='dbuser', pw='', db='mydata') 2. select 查询 # 查询表 entries = db.select('mytable') # where 条件 myvar = dict(name="Bob") results = db.select('mytable', myvar, where="name = $nam