ThinkPHP5.0数据库基本操作

一、查询数据操作如下:

db('user')->where('id',1)->find();//查询一条数据
db('user')->where('status',1)->select();//查询多条数据

二、添加数据操作如下:

复制代码
// 添加单条数据
$data = ['foo' => 'bar', 'bar' => 'foo'];
db('user')->insert($data);

// 添加多条数据
$list = [
    ['foo' => 'bar', 'bar' => 'foo'],
    ['foo' => 'bar1', 'bar' => 'foo1'],
    ['foo' => 'bar2', 'bar' => 'foo2']
];
db('user')->insertAll($list);
复制代码

三、修改数据操作如下:

复制代码
// 更新数据表中的数据
db('user')->where('id',1)->update(['name' => 'thinkphp']);
// 更新某个字段的值
db('user')->where('id',1)->setField('name','thinkphp');
// 自增 score 字段
db('user')->where('id', 1)->setInc('score');
// 自减 score 字段
db('user')->where('id', 1)->setDec('score');
复制代码

四、删除数据操作如下:

// 根据主键删除
db('user')->delete(1);
// 条件删除    
db('user')->where('id',1)->delete();

五、查询条件方法:

复制代码
where方法
可以使用where方法进行AND条件查询:
Db::table('think_user')
    ->where('name','like','%thinkphp')
    ->where('status',1)
    ->find();
多字段相同条件的AND查询可以简化为如下方式:
Db::table('think_user')
    ->where('name&title','like','%thinkphp')
    ->find();
whereOr方法
使用whereOr方法进行OR查询:
Db::table('think_user')
    ->where('name','like','%thinkphp')
    ->whereOr('title','like','%thinkphp')
    ->find();
多字段相同条件的OR查询可以简化为如下方式:
Db::table('think_user')
    ->where('name|title','like','%thinkphp')
    ->find();
混合查询
where方法和whereOr方法在复杂的查询条件中经常需要配合一起混合使用,下面举个例子:

$result = Db::table('think_user')->where(function ($query) {
    $query->where('id', 1)->whereor('id', 2);
})->whereOr(function ($query) {
    $query->where('name', 'like', 'think')->whereOr('name', 'like', 'thinkphp');
})->select();
生成的sql语句类似于下面:

SELECT * FROM `think_user` WHERE  (  `id` = 1 OR `id` = 2 ) OR (  `name` LIKE 'think' OR `name` LIKE 'thinkphp' )
注意闭包查询里面的顺序,而且第一个查询方法用where或者whereOr是没有区别的。
getTableInfo方法
使用getTableInfo可以获取表信息,信息类型 包括 fields,type,bind,pk,以数组的形式展示,可以指定某个信息进行获取

// 获取`think_user`表所有信息
Db::getTableInfo('think_user');
// 获取`think_user`表所有字段
Db::getTableInfo('think_user', 'fields');
// 获取`think_user`表所有字段的类型
Db::getTableInfo('think_user', 'type');
// 获取`think_user`表的主键
Db::getTableInfo('think_user', 'pk');
复制代码

七、查询表达示如下:

where('字段名','表达式','查询条件');
whereOr('字段名','表达式','查询条件');
表达式不分大小写,支持的查询表达式有下面几种,分别表示的含义是:

 

例子:

where('id','eq',100);
where('id','=',100);

七、数组查询操作如下:

复制代码
$map['name'] = 'thinkphp';
$map['status'] = 1;
// 把查询条件传入查询方法
Db::table('think_user')->where($map)->select(); 

// 助手函数
db('user')->where($map)->select();
复制代码

使用字符串条件直接查询和操作,例如:

Db::table('think_user')->where('type=1 AND status=1')->select(); 

使用字符串条件的时候,建议配合预处理机制,确保更加安全,例如:

Db::table('think_user')->where("id=:id and username=:name")->bind(['id'=>[1,\PDO::PARAM_INT],'name'=>'thinkphp'])->select();

 

猜你喜欢

转载自blog.csdn.net/wangmj518/article/details/80202223