关键词搜索

源码搜索 ×
×

PHP笔记-laravel框架中使用DB facade实现CURD

发布2022-05-12浏览556次

详情内容

Laravel查询构造器(query builder)提供方便、流畅的接口,用来建立执行数据库查找语法;

使用PDO参数绑定,以保护应用程序免于SQL注入因此传入的参数不需要额外转义特殊字符;

基本可以满足所有的数据库操作,而且在所有支持的数据库系统上都可以执行。

程序运行截图如下:

对应的表结构是这样的:

  1. /*
  2. SQLyog Ultimate v12.09 (64 bit)
  3. MySQL - 5.7.12 : Database - laravel
  4. *********************************************************************
  5. */
  6. /*!40101 SET NAMES utf8 */;
  7. /*!40101 SET SQL_MODE=''*/;
  8. /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
  9. /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
  10. /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
  11. /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
  12. CREATE DATABASE /*!32312 IF NOT EXISTS*/`laravel` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */;
  13. USE `laravel`;
  14. /*Table structure for table `student` */
  15. DROP TABLE IF EXISTS `student`;
  16. CREATE TABLE `student` (
  17. `id` int(11) NOT NULL AUTO_INCREMENT,
  18. `name` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  19. `age` int(11) DEFAULT NULL,
  20. PRIMARY KEY (`id`)
  21. ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  22. /*Data for the table `student` */
  23. insert into `student`(`id`,`name`,`age`) values (2,'小张',19),(3,'小明',18),(4,'小张',19);
  24. /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
  25. /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
  26. /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
  27. /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

源码如下:

路由web.php添加:

  1. Route::prefix('student')->group(function(){
  2. Route::get('dbFacadeInsert', 'StudentController@dbFacadeInsert');
  3. Route::get('dbFacadeSelect', 'StudentController@dbFacadeSelect');
  4. Route::get('dbFacadeModify', 'StudentController@dbFacadeModify');
  5. Route::get('dbFacadeDelete', 'StudentController@dbFacadeDelete');
  6. });

 这个config/database.php是数据库相关的设置,目前不用改,对应mysql是这样的。

 需要修改的是

.env

修改为如下:

  1. DB_CONNECTION=mysql
  2. DB_HOST=127.0.0.1
  3. DB_PORT=3306
  4. DB_DATABASE=laravel
  5. DB_USERNAME=root
  6. DB_PASSWORD=root

新建StudentController.php

 

  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Support\Facades\DB;
  4. class StudentController extends Controller{
  5. public function dbFacadeSelect(){
  6. $students = DB::select('select * from student');
  7. var_dump($students);
  8. return "dbFacadeSelect";
  9. }
  10. public function dbFacadeInsert(){
  11. $bool = DB::insert('insert into student(name, age) value(?, ?)', ['小明', 18]);
  12. $bool = DB::insert('insert into student(name, age) value(?, ?)', ['小张', 19]);
  13. return "dbFacadeInsert";
  14. }
  15. public function dbFacadeModify(){
  16. $num = DB::update('update student set age = ? where name = ?', [20, '小明']);
  17. //var_dump($num);
  18. return "dbFacadeInsert";
  19. }
  20. public function dbFacadeDelete(){
  21. $num = DB::delete('delete from student where id = ?', [1]);
  22. var_dump($num);
  23. return "dbFacadeDelete";
  24. }
  25. }

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载