ThinkPHP5源码学习篇--Db操作

本文详细介绍了ThinkPHP5框架中Db类的使用和源码学习,包括Db类的实例化、数据库连接、Query类的解析。通过学习,可以更好地理解和掌握TP5中的数据库操作,提高开发效率。
摘要由CSDN通过智能技术生成

学习Db类

在ThinkPHP5.0的框架使用过程中,Db类是一定会接触到的,上手不难,但若想随心所欲的用,还是需要了解一番。比如我记忆力不太好,在开发过程中添加where,若出现like,eq等等条件,老是忘了后面是跟数组呢还是逗号分割;再使用join时,想要LEFT或RIGHT时,又忘了如何注明。迫不得己,用一次看一次文档。在之前零零碎碎的源码学习过程中,虽说也记不起许多细节,也说不出到底学了什么,但总归自己觉得有了进步,起码对TP5这个框架使用更加得心应手,毕竟技术服务于业务,能够写出更简介、更方便、更有效的业务代码,本身就是一件身心愉悦的事儿。


查询

Db::table(‘t_user’)->where(‘id’, 1)->find();
查询t_user表中id等于1的行,所以将目光聚焦thinkphp/library/think/Db.php文件。

PHPStorm提示

先说个和业务无关的题外话,Db类内部没有找到table()静态方法,可是我们在开发时,输入Db+两个引号,会弹出多个方法提示,其中包括了table()。这就觉得有点奇怪了,打开Db代码,发现包含了大堆对method的注释。我照着新增@method注解后,自定义方式IDE也会提示了!真是个好玩意儿,比如我喜欢把redis封装成单例工具类。那么再某些情况下,实例对象调用方法时,调试上不太友好。基于Db的类注释,刚刚已经确认能够在开发中增加提示,让开发过程更舒服。

/**
 * Class Db
 * @package think
 * @method Query table(string $table) static 指定数据表(含前缀)
 * @method Query name(string $name) static 指定数据表(不含前缀)
 * @method Query where(mixed $field, string $op = null, mixed $condition = null) static 查询条件
 * @method Query join(mixed $join, mixed $condition = null, string $type = 'INNER') static JOIN查询
 * @method Query union(mixed $union, boolean $all = false) static UNION查询
 * @method Query limit(mixed $offset, integer $length = null) static 查询LIMIT
 * @method Query order(mixed $field, string $order = null) static 查询ORDER
 * @method Query cache(mixed $key = null , integer $expire = null) static 设置查询缓存
 * @method mixed value(string $field) static 获取某个字段的值
 * @method array column(string $field, string $key
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值