ThinkPHP5.1 数据库操作笔记

ThinkPHP5.1 数据库操作笔记

一、使用 Query 类的方法,在模型层查询数据

class Index extends Model
{
    protected $table = 'letters';
    public function getContent()
    {
        // 下面所有的代码都在此环境下编写
    }
}

(一) 查询 - select()

  1. 无差检索
    这里返回的是一个二维对象数组, 如果想要返回单一数据,使用 find() 方法. 一般情况下,操作模型的时候系统能够自动识别当前对应的数据表,所以,使用 table 方法的情况通常是为了:

    1. 切换操作的数据表
    2. 对多表进行操作
$res = $this->table($this->common)->select();

由于对象数组无法直接使用, thinkphp 提供了一个 toArray() 的方法, 可以将对象数组转换成普通数组.

  1. 检索指定字段
$res = $this->table($this->common)->field("common_id,common_content")->select();
  1. 检索被限定字段
$res = $this
    ->table($this->common)
    ->where("common_id=0")
    ->field("common_id,common_content")
    ->select();

注释:
① table 即数据表, 查询前先确定使用那张表.
② 还有很多特殊的搜索, 需要在文档查阅,这里是最常见的

(二) 增加 - insert()

$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()

$this->table($this->table)->where("letters_id=3")->delete();

(四) 修改 - update()

$array = [
    'letters_title' => '标题不能随意!',
    'letters_content' => '第一次添加内容,希望不会失败',
    'letters_sender' => '张华',
    'letters_receiver' => '马超'
];
$this->table($this->table)->where("letters_title='标题随意'")->update($array);

使用 sql 语句操作

直接使用 sql 语句操作数据库, 鉴于读写分离, 读操作我们使用 query, 写操作我们使用 execute.

$sql = "sdfkl";
$this->query($sql);
$this->execute($sql)

在控制器内,调用模型方法

class Index extends Controller
{
    public function home()
    {
        # 直接 new 对象
        $model = new IndexModel();

        $res = $model->getContent();
    }
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注