博客列表 >TP5数据库操作

TP5数据库操作

可乐随笔
可乐随笔原创
2024年01月20日 14:31:231225浏览

一、数据库链接方式

注:用户访问URL对应的是一个控制器,控制器与模型(数据库)交互,然后把处理完的数据前给视图,视图负责展现数据。

  1. <?php
  2. namespace app\index\controller;
  3. use think\Db;
  4. /*
  5. * 数据库链接方式
  6. * 1.全局配置:config/database.php
  7. * 2.动态配置
  8. * 3.DES配置
  9. */
  10. class Demo4
  11. {
  12. //全局配置
  13. public function conn1($id = 1)
  14. {
  15. return Db::table('student')
  16. ->where('id', $id)
  17. ->value('name');
  18. }
  19. //动态配置
  20. public function conn2($id = 1)
  21. {
  22. return Db::connect([
  23. 'type' => 'mysql',
  24. 'hostname' => '127.0.0.1',
  25. 'database' => 'demo',
  26. 'username' => 'root',
  27. 'password' => 'root'
  28. ])
  29. ->table('student')
  30. ->where('id', $id)
  31. ->value('name');
  32. }
  33. //DSC配置
  34. public function conn3($id = 1)
  35. {
  36. $dsc = 'mysql://root:root@127.0.0.1:3306/demo#utf8';
  37. return Db::connect($dsc)
  38. ->table('student')
  39. ->where('id', $id)
  40. ->value('name');
  41. }
  42. }

二、数据库操作

  1. <?php
  2. namespace app\index\controller;
  3. use think\Db;
  4. use think\db\Where;
  5. class Demo5
  6. {
  7. //1.单条查询
  8. public function find($id = 1)
  9. {
  10. $res = Db::table('student')
  11. // ->field('id,name,email')
  12. ->field(['id' => '编号', 'name' => '姓名', 'email' => '邮箱'])
  13. // ->where('id','=',$id)//默认查询条件是=号,可以省略,如果查询条件是主键,where语句也可以省略
  14. ->find(2);//省略where后,在Find()中放入查询主键参数
  15. var_dump(is_null($res) ? '没有找到' : $res);
  16. }
  17. //2.多条查询
  18. public function select()
  19. {
  20. $res = Db::table('student')
  21. ->field('id,name,course,grade')
  22. ->where([
  23. ['course', '=', 'php'],
  24. ['grade', '>', 80]
  25. ])->select();
  26. if (empty($res)) {
  27. return '没有满足条件的记录';
  28. } else {
  29. foreach ($res as $row) {
  30. dump($row);
  31. }
  32. }
  33. }
  34. //3.单条插入
  35. public function insert()
  36. {
  37. //insert()成功返回新增的数量,失败返回false
  38. $data = [
  39. 'name' => '测试6',
  40. 'email' => 'cs6@qq.com',
  41. 'course' => 'php',
  42. 'grade' => '85',
  43. 'create_time' => time(),
  44. 'update_time' => time(),
  45. ];
  46. // $res = Db::table('student')->insert($data);
  47. //insert()中加,true参数,生成的SQL语句是以 replace方法插入数据,效率更高(其实也要具体分析)
  48. // $res = Db::table('student')->insert($data,true);
  49. //data($data)方法,会过滤参数,更安全
  50. // $res = Db::table('student')->data($data)->insert();
  51. //插入的同时返回新增主键
  52. $res = Db::table('student')->insertGetId($data);
  53. return $res;
  54. }
  55. //4.多条插入
  56. public function insertAll()
  57. {
  58. $data = [
  59. ['name' => '测试10','email' => 'cs10@qq.com','course' => 'php','grade' => '82','create_time' => time(),'update_time' => time(),],
  60. ['name' => '测试11','email' => 'cs11@qq.com','course' => 'php','grade' => '83','create_time' => time(),'update_time' => time(),],
  61. ['name' => '测试12','email' => 'cs12@qq.com','course' => 'php','grade' => '84','create_time' => time(),'update_time' => time(),],
  62. ];
  63. // $res = Db::table('student')->insertAll($data);
  64. $res = Db::table('student')->data($data)->insertAll();
  65. return $res;
  66. }
  67. //5.更新操作
  68. public function update($id = 1)
  69. {
  70. //更新一定要有更新条件,成功的话,返回更新的数量,失败的话返回false
  71. // $res = Db::table('student')
  72. // ->where('id',$id)
  73. // ->update(['name'=>'李九','grade'=>0]);
  74. //如果更新条件是主键,可以把主键写到更新数组中
  75. $res = Db::table('student')
  76. ->update(['name'=>'李九','grade'=>0,'id'=>16]);
  77. return $res;
  78. }
  79. //6.删除操作
  80. public function delete($id = null)
  81. {
  82. if ($id == null){
  83. return 'id参数有误';
  84. }
  85. $res = Db::table('student')->delete($id);
  86. return $res;
  87. }
  88. //7.原生查询
  89. public function query()
  90. {
  91. $sql = 'SELECT `name`,`email` FROM `student` WHERE `id` IN (4,5,6)';
  92. dump(Db::query($sql));
  93. }
  94. //8.原生写操作:更新、删除、添加
  95. public function execute()
  96. {
  97. // return Db::execute("UPDATE `student` SET `name`='武松' WHERE `id`=1");
  98. // return Db::execute("INSERT `student` SET `name`='武松1'");
  99. return Db::execute("DELETE FROM`student` WHERE `name`='武松1'");
  100. }
  101. }
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议