博客列表 >PHP大牛成长之路:laravel原生数据库增/删/改/查

PHP大牛成长之路:laravel原生数据库增/删/改/查

周Sir-BLOG
周Sir-BLOG原创
2020年09月16日 00:07:16929浏览

1 创建控制器方法(演示用)

  1. // SQL 查询
  2. public function select()
  3. {
  4. // ? 号占位符用于防止 SQL 注入,第二个参数绑定
  5. $res = DB::select('SELECT `username`,`email` FROM `users` WHERE `id` > ? LIMIT 5', ['2000']);
  6. // 除了使用 ? 表示参数绑定外,你也可以使用命名绑定来执行一个查询:
  7. // $res = DB::select('SELECT * FROM `users` WHERE `id` > :n', ['n'=>2]);
  8. return $res;
  9. }
  10. // SQL 插入
  11. public function insert()
  12. {
  13. // 避免语句过长,? 号占位符使用$user变量代替
  14. $user = ['ximen', '18','ximen@php.cn',md5('123456php.pro')];
  15. $res = DB::insert('INSERT INTO `users`(`username`,`age`,`email`,`password`) VALUES (?,?,?,?)', $user);
  16. // 返回执行成功条目数
  17. return $res;
  18. }
  19. // SQL 删除
  20. public function delete()
  21. {
  22. $res = DB::delete('DELETE FROM `users` WHERE `id`= ?' ,[2043]);
  23. // 返回执行成功条目数
  24. return $res;
  25. }
  26. // SQL 更新
  27. public function update()
  28. {
  29. $res = DB::update('UPDATE `users` SET `username` = ? WHERE `id` = ?', ['peter',2041]);
  30. // 返回执行成功条目数
  31. return $res;
  32. }
  33. // SQL 链式操作()
  34. public function chain()
  35. {
  36. // 查询id为2040的记录
  37. $res = DB::table('users')->find(2040);
  38. // 查询id大于2000的记录
  39. $res = DB::table('users')->where('id','>',2000)->get();
  40. print_r($res) ;
  41. // find()根据ID查询/返回1条
  42. // get():获取所有行
  43. // first()获取单行
  44. // lists()获取包含单个列值的数组(字段)
  45. // select()获取数据表的所有列(字段)
  46. // where() 条件
  47. // 还有聚合函数,比如count, max, min, avg, 和 sum,需要在构造查询之后调用这些方法
  48. // ....
  49. }

2 创建路由(演示用)

  1. // 查询
  2. Route::get('users/select', 'Users@select');
  3. // 插入
  4. Route::get('users/insert', 'Users@insert');
  5. // 删除
  6. Route::get('users/delete', 'Users@delete');
  7. // 更新
  8. Route::get('users/update', 'Users@update');
  9. // 链式操作
  10. Route::get('users/chain', 'Users@chain');

总结

  • laravel对原生的增删改查操作进行了Facade门面模式封装,操作更方便;
  • 查询构造器未进行的链式操作可以使操作更加简便/优雅;
  • 查询构造器只对部分方法进行了测试,更多方法可参考:https://learnku.com/docs/laravel/7.x/queries/7494
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议