博客列表 >laravel7.x 数据库原生增删改查

laravel7.x 数据库原生增删改查

我是郭富城
我是郭富城原创
2020年06月05日 05:31:26773浏览

Laravel 能使用原生 SQL、流畅的查询构造器 和 Eloquent ORM 在各种数据库后台与数据库进行非常简单的交互。当前 Laravel 支持四种数据库:

  • MySQL 5.6+
  • PostgreSQL 9.4+
  • SQLite 3.8.8+
  • SQL Server 2017+

1. 数据库配置

数据库的配置文件根目录的.env文件

  1. DB_CONNECTION=mysql//数据库类型
  2. DB_HOST=127.0.0.1
  3. DB_PORT=3306 //端口号
  4. DB_DATABASE=//数据库名
  5. DB_USERNAME=//数据库用户名
  6. DB_PASSWORD=//数据库密码

2. 增删改查

2.1 查询

演示地址:http://www.php520.vip/dbselect

  1. public function get(){
  2. //select * from article
  3. $res=DB::select('select * from article where id >5');
  4. echo '<pre>';
  5. print_r($res);
  6. }

2.2 更新

演示地址:http://www.php520.vip/dbupdate

  1. //数据库更新操作(原生)
  2. public function update() {
  3. $res=DB::update('update article set title="我是最爱php的" where id=3');
  4. var_dump($res);//返回更新的行数(0和1)
  5. }

2.3 删除

演示地址:http://www.php520.vip/dbdelete

  1. //数据库删除操作(原生)
  2. public function delete() {
  3. $res=DB::delete('delete from article where id=6');
  4. var_dump($res);//返回更新的行数(0和1)
  5. }

2.4 增加

演示地址:http://www.php520.vip/dbinsert

  1. //数据库新增操作(原生)
  2. public function insert() {
  3. $res=DB::insert('insert article(`title`) values("我是最爱php的yoyoyo")');
  4. var_dump($res);//返回时布尔值(true/false)
  5. }

2.5 控制器完整代码

  1. <?php
  2. /**
  3. * @Author: Nicola
  4. * @Date: 2020-06-04 17:35:44
  5. * @email: admin@nicola.com
  6. * @Last Modified by: Nicola
  7. * @Last Modified time: 2020-06-05 02:06:35
  8. */
  9. // 命名空间:和目录对应
  10. // 类名称要和文件名称一致
  11. namespace App\Http\Controllers;
  12. //引入数据库DB类
  13. use Illuminate\Support\Facades\DB;
  14. /**
  15. *继承类
  16. */
  17. class Home extends Controller
  18. {
  19. public function index() {
  20. // return 'www.php.cn';
  21. // 输出一个视图(view是laravel内核定义好)
  22. $time=date('Y-m-d H:i:s');
  23. $res=DB::select('select * from article');
  24. // $name='nicola';
  25. // echo '<pre>';
  26. // $data=[];
  27. // $data['time']=$time;
  28. // $data['name']='laravel基础教学';
  29. $datas=[];
  30. foreach ($res as $key => $value) {
  31. $datas[]=(array)$value;
  32. }
  33. $data['result']=$datas;
  34. // echo '<pre>';
  35. // print_r($data);
  36. // echo $data;
  37. // return view('test',['time'=>$time,'name'=>$name]);
  38. return view('test',$data);
  39. // return view('test')->with('time',$time)->with('name',$name);
  40. }
  41. //数据库查询(原生)
  42. public function get(){
  43. //select * from article
  44. $res=DB::select('select * from article where id >5');
  45. echo '<pre>';
  46. print_r($res);
  47. }
  48. //数据库更新操作(原生)
  49. public function update() {
  50. $res=DB::update('update article set title="我是最爱php的" where id=3');
  51. var_dump($res);//返回更新的行数(0和1)
  52. }
  53. //数据库新增操作(原生)
  54. public function insert() {
  55. $res=DB::insert('insert article(`title`) values("我是最爱php的yoyoyo")');
  56. var_dump($res);//返回时布尔值(true/false)
  57. }
  58. //数据库删除操作(原生)
  59. public function delete() {
  60. $res=DB::delete('delete from article where id=6');
  61. var_dump($res);//返回更新的行数(0和1)
  62. }
  63. }

2.6 路由完整代码

  1. <?php
  2. /**
  3. * @Author: Nicola
  4. * @Date: 2020-06-03 00:01:11
  5. * @email: admin@nicola.com
  6. * @Last Modified by: Nicola
  7. * @Last Modified time: 2020-06-05 02:03:35
  8. */
  9. use Illuminate\Support\Facades\Route;
  10. /*
  11. |--------------------------------------------------------------------------
  12. | Web Routes
  13. |--------------------------------------------------------------------------
  14. |
  15. | Here is where you can register web routes for your application. These
  16. | routes are loaded by the RouteServiceProvider within a group which
  17. | contains the "web" middleware group. Now create something great!
  18. |
  19. */
  20. // Route::get('路径','函数')
  21. Route::get('/', function () {
  22. return view('welcome');//视图 视图引擎
  23. // echo "欢迎光临php中文网";
  24. // echo date('Y-m-d H:i:s');
  25. });
  26. //访问控制器中某个类的方法,请求映射到控制器中
  27. Route::get('/home','Home@index');
  28. Route::get('/dbselect','Home@get');
  29. Route::get('/dbupdate','Home@update');
  30. Route::get('/dbinsert','Home@insert');
  31. Route::get('/dbdelete','Home@delete');

2.7 视图完整代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <title>测试</title>
  6. <link rel="stylesheet" href="layui/css/layui.css" />
  7. </head>
  8. <body>
  9. <h3>利用原生查询语句获取数据表内容</h3>
  10. <table class="layui-table">
  11. <thead>
  12. <tr>
  13. <td>ID</td>
  14. <td>标题</td>
  15. <td>备注</td>
  16. </tr>
  17. </thead>
  18. <tbody>
  19. <?php foreach ($result as $key=>
  20. $value) { ?>
  21. <tr>
  22. <td><?php echo $value['id']; ?></td>
  23. <td><?php echo $value['title']; ?></td>
  24. <td><?php echo $value['beizhu']; ?></td>
  25. </tr>
  26. <?php }?>
  27. </tbody>
  28. </table>
  29. </body>
  30. </html>

3. 返回数据到视图渲染

演示地址:http://www.php520.vip/home

4. 总结

约定优于配置(也称作按约定编程),框架同样采用“约定优于配置”的方法。这基本上意味着,如果遵循了不同组件的命名约定,就几乎不必关注配置工作(熟悉他的框架,直接调用相关的功能)。Laravel 框架自身就会处理许多低级的细节,而且一切都会神奇地开始工作。如果一直使用传统的 PHP 编程,这在一开始可能会感到难以忍受。但一旦尝到了甜头,就再也不想回头了。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议