数据库增删改查
(不建议使用原生sql方式):
增加 :Db::execute('insert into table_name values (null,'name')
: Db::execute('insert into table_name values (null,?)',['thinkphp']);
: Db::execute('insert into table_name values (null, :name)',['thinkphp']);
$data = ['foo' => 'bar', 'bar' => 'foo'];
Db::table('think_user')->insert($data);
删除: Db::execute('delete from table_name where 条件);
// 条件删除
Db::table('think_user')->where('id',1)->delete();
更改:Db::execute('update table_name set 列名=新值 where 条件); Db::table('think_user')->where('id', 1)->update(['name' => 'thinkphp']);
多条件查询db("users")->where('uname','useradmin')->where('password','123')->select();||SELECT * FROM `users` WHERE `uname` = 'useradmin' AND `password` = '123'查询:Db::execute('select * from table_name where 条件);多值查询: Db::table('think_user')->field('id,title,content')->select();
排除查询:(除了。。的字段) :Db::table('think_user')->field(['user_id','content'],true)->select();
Db::table('users')->field('uname',true)->select();
||
SELECT `uid`,`password`,`gender`,`birthday`,`pic`,`email` FROM `users`
分页查询:用于记录分页查询是limit方法比较常用的场合,例如:
Db::table('think_article')->limit('10,25')->select();
表示查询文章数据,从第10行开始的25条数据
// 查询第一页数据
Db::table('think_article')->page('1,10')->select();
// 查询第二页数据
Db::table('think_article')->page('2,10')->select();
PS:查看上一句数据库操作:echo Db::name("表名")->getLastSql();
field方法还有一个非常重要的安全功能--字段合法性检测。
Db::table('think_user')->field('title,email,content')->insert($data);
即表示表单中的合法字段只有title,email和content字段,无论用户通过什么手段更改或者添加了浏览器的提交字段,都会直接屏蔽。