ThinkPHP5.1 数据库操作笔记
一、使用 Query 类的方法,在模型层查询数据
1 2 3 4 5 6 7 8 9 |
class Index extends Model { protected $table = 'letters'; public function getContent() { // 下面所有的代码都在此环境下编写 } } |
(一) 查询 - select()
- 无差检索
这里返回的是一个二维对象数组, 如果想要返回单一数据,使用 find() 方法. 一般情况下,操作模型的时候系统能够自动识别当前对应的数据表,所以,使用 table 方法的情况通常是为了:- 切换操作的数据表
- 对多表进行操作
1 2 |
$res = $this->table($this->common)->select(); |
由于对象数组无法直接使用, thinkphp 提供了一个 toArray() 的方法, 可以将对象数组转换成普通数组.
- 检索指定字段
1 2 |
$res = $this->table($this->common)->field("common_id,common_content")->select(); |
- 检索被限定字段
1 2 3 4 5 6 |
$res = $this ->table($this->common) ->where("common_id=0") ->field("common_id,common_content") ->select(); |
注释:
① table 即数据表, 查询前先确定使用那张表.
② 还有很多特殊的搜索, 需要在文档查阅,这里是最常见的
(二) 增加 - insert()
1 2 3 4 5 6 7 8 9 10 11 12 |
$array = [ 'letters_title' => '标题随意', 'letters_content' => '第一次添加内容,希望不会失败', 'letters_sender' => '张华', 'letters_receiver' => '马超' ]; # 1. 使用 query 类的 insert 方法 $this->table($this->common)->insert($array); # 2. 使用 Model 类的 save 方法 $this->save($array); |
(三) 删除 - delete()
1 2 |
$this->table($this->table)->where("letters_id=3")->delete(); |
(四) 修改 - update()
1 2 3 4 5 6 7 8 |
$array = [ 'letters_title' => '标题不能随意!', 'letters_content' => '第一次添加内容,希望不会失败', 'letters_sender' => '张华', 'letters_receiver' => '马超' ]; $this->table($this->table)->where("letters_title='标题随意'")->update($array); |
使用 sql 语句操作
直接使用 sql 语句操作数据库, 鉴于读写分离, 读操作我们使用 query, 写操作我们使用 execute.
1 2 3 4 |
$sql = "sdfkl"; $this->query($sql); $this->execute($sql) |
在控制器内,调用模型方法
1 2 3 4 5 6 7 8 9 10 11 |
class Index extends Controller { public function home() { # 直接 new 对象 $model = new IndexModel(); $res = $model->getContent(); } } |