//获取user列表
public function get_user_list()
{
//1.首先获取用户id,用户已有id、邮箱等属性,在Base类中已经进行过邮箱校验,其余类继承Base即可
$user_id = Session::get('user_id');
//2.定义列表,运用框架语法查询,注意,卫星系统一共有三个库,frss(主库)、fess_csg(副库)、frss_ific(副库)
//调用主库案例
$user_list = Db::table('user') //默认是主库
->field('id','name','dapartment') //查询哪些列
->where('del','=','0') // 查询条件
->where('id','<>',$user_id) //查询条件,条件之间默认为and链接
->select(); //定义查询语句
return json ('code'>=0,'msg'=>'查询成功',date=>$user_list) //返回以json的格式返回,包括code、msg、data
//此为副库查询案例
/* $data=Db::connect('db_cfg')
->table('correspondence_template')
->field('id,template_name,hanjianleixing,shouhanjigou,jigoudizhi,mubanyuyan,text')
->select();
return json(['code' => 0, 'msg' => '查询成功','data'=>$data]);
*/
}
public function update_user()
{
$share_id=Request::param('share_id'); //Request::param('a') 获取只能获取单个参数,$data = Request::only(['a','b'])获取多个参数
$id=Request::param('id');
$user_id=Session::get('user_id');
$data=Db::table('correspondence_manage')
->where([
'id'=>$id,
'user_id'=>$user_id,
])
->update([
'share_to_user_id'=>$share_id
]);
return json(['code'=>0,'msg'=>'设置成功']);
}
public function del_file(){
$file_id=Request::param('id');
$user_id=Session::get('user_id');
$file_path=Db::table('coordination_task_file')
->where([
['id','=',$file_id],
['user_id','=',$user_id]
])
->find();
if($file_path){
@unlink($file_path['ture_path']); //当添加到PHP中的表达式时,该表达式可能生成的任何错误消息都将被忽略
Db::table('coordination_task_file')->delete($file_id);
return json(['code'=>0,'msg'=>'删除成功']);
}
return json(['code'=>-1,'msg'=>'删除失败。']);
}
// 软删除数据 使用delete_time字段标记删除
Db::name('user')
->where('id', 1)
->useSoftDelete('delete_time',time())
->delete();
public function new_simulation_info()
{
$data=Request::only([
'simulation_group',
'simulation_name',
'coordination_type',
]);
$data['user_id']=Session::get('user_id');
$data['add_date']=date("Y-m-d H:i:s", time());
$simulation_id=Db::table('coordination_task')->insertGetId($data);
return json(['code'=>0,'msg'=>'添加成功','id'=>$simulation_id]);
}
$userId = Db::name('user')->insertGetId($data);
$data = [
['foo' => 'bar', 'bar' => 'foo'],
['foo' => 'bar1', 'bar' => 'foo1'],
['foo' => 'bar2', 'bar' => 'foo2']
];
Db::name('user')->insertAll($data);
$data = [
['foo' => 'bar', 'bar' => 'foo'],
['foo' => 'bar1', 'bar' => 'foo1'],
['foo' => 'bar2', 'bar' => 'foo2']
...
];
// 分批写入 每次最多100条数据
Db::name('user')
->limit(100)
->insertAll($data);
Db::name('user')
->where('id', 1)
->data(['name' => 'thinkphp'])
->update();
表达式 | 含义 | 快捷查询方法 |
---|---|---|
= | 等于 | |
<> | 不等于 | |
> | 大于 | |
>= | 大于等于 | |
< | 小于 | |
<= | 小于等于 | |
[NOT] LIKE | 模糊查询 | whereLike/whereNotLike |
[NOT] BETWEEN | (不在)区间查询 | whereBetween/whereNotBetween |
[NOT] IN | (不在)IN 查询 | whereIn/whereNotIn |
[NOT] NULL | 查询字段是否(不)是NULL | whereNull/whereNotNull |
[NOT] EXISTS | EXISTS查询 | whereExists/whereNotExists |
[NOT] REGEXP | 正则(不)匹配查询(仅支持Mysql) | |
[NOT] BETWEEN TIME | 时间区间比较 | whereBetweenTime |
> TIME | 大于某个时间 | whereTime |
< TIME | 小于某个时间 | whereTime |
>= TIME | 大于等于某个时间 | whereTime |
<= TIME | 小于等于某个时间 | whereTime |
EXP | 表达式查询,支持SQL语法 | whereExp |
find in set | FIND_IN_SET查询 | whereFindInSet |
Db::table('think_user')
->where('id','>',1)
->where('name','thinkphp')
->select();
// 传入数组作为查询条件
Db::table('think_user')->where([
['name','=','thinkphp'],
['status','=',1]
])->select();
Db::table('think_user')
->alias('a')
->join('think_dept b ','b.user_id= a.id')
->select();
Db::table('think_user')
->alias(['think_user'=>'user','think_dept'=>'dept'])
->join('think_dept','dept.user_id= user.id')
->select();
Db::table('user')->field('id,title,content')->select();
content
字段(文本字段的值非常耗内存)之外的所有字段值,我们就可以使用field方法的排除功能,例如下面的方式就可以实现所说的功能:Db::table('user')->withoutField('content')->select();
Db::table('user')->withoutField('user_id,content')->select();
//或者用
Db::table('user')->withoutField(['user_id','content'])->select();
Db::table('user')
->where('status',1)
->field('id,name')
->limit(10)
->select();
Db::table('user')
->where('score',100)
->limit(3)
->update(['level'=>'A']);
Db::table('user')
->limit(100)
->insertAll($userList);
Db::table('article')->limit(10,25)->select();
方法 | 说明 |
---|---|
count | 统计数量,参数是要统计的字段名(可选) |
max | 获取最大值,参数是要统计的字段名(必须) |
min | 获取最小值,参数是要统计的字段名(必须) |
avg | 获取平均值,参数是要统计的字段名(必须) |
sum | 获取总分,参数是要统计的字段名(必须) |
Db::query("select * from think_user where status=:id", ['id' => 1]);
query
方法默认是在读服务器执行,而不管你的SQL语句是什么。事件 | 描述 |
---|---|
before_select | select 查询前回调 |
before_find | find 查询前回调 |
after_insert | insert 操作成功后回调 |
after_update | update 操作成功后回调 |
after_delete | delete 操作成功后回调 |
Db::transaction(function () {
Db::table('think_user')->find(1);
Db::table('think_user')->delete(1);
});
// 启动事务
Db::startTrans();
try {
Db::table('think_user')->find(1);
Db::table('think_user')->delete(1);
// 提交事务
Db::commit();
} catch (\Exception $e) {
// 回滚事务
Db::rollback();
}
var_dump (var,var,bar);
要注意一点,用var_dump里面的变量必须是存在的,如果变量存在但值是空的就会返回false;没有变量则返回NULL.他自己就有输出的功能。不必加其他的输出函数。
在PHP里面->和=>完全不同的,->用来引用对象的成员(属性与方法),=>只用来数组赋值,下面的例子代码有利于理解:
$arr``=[``'a'``=>123,``'b'``=>456];``//数组初始化
``echo` `$arr``[``'a'``];``//数组引用
``print_r(``$arr``);``//查看数组
``class` `A{
``public` `$a``=123;
``public` `$b``=456;
``}
``$obj``=``new` `A();
``echo` `$obj``->a;``//对象引用
``print_r(``$obj``);``//查看对象