博主信息
博文 62
粉丝 7
评论 2
访问量 74166
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
laravel7.x 数据库原生增删改查
我是郭富城
原创
962人浏览过

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 编程,这在一开始可能会感到难以忍受。但一旦尝到了甜头,就再也不想回头了。

批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:其实, 5.5+, 各版本之间的差异很小的
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学