IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> PHP笔记-laravel框架中的数据库查询构造器 -> 正文阅读

[PHP知识库]PHP笔记-laravel框架中的数据库查询构造器

程序运行截图如下:

对应的表结构是这样的:

/*
SQLyog Ultimate v12.09 (64 bit)
MySQL - 5.7.12 : Database - laravel
*********************************************************************
*/


/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`laravel` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */;

USE `laravel`;

/*Table structure for table `student` */

DROP TABLE IF EXISTS `student`;

CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

/*Data for the table `student` */

insert  into `student`(`id`,`name`,`age`) values (2,'小张',19),(3,'小明',18),(4,'小张',19);

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

源码如下:

路由web.php添加:

Route::prefix('student')->group(function(){

	......
	......
	Route::get('qbInsert', 'StudentController@qbInsert');
    Route::get('qbSelect', 'StudentController@qbSelect');
    Route::get('qbModify', 'StudentController@qbModify');
    Route::get('qbDelete', 'StudentController@qbDelete');
});

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

需要修改的是

.env

修改为如下:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=root

新建StudentController.php

<?php


namespace App\Http\Controllers;


use Illuminate\Support\Facades\DB;

class StudentController extends Controller{

    ......
    ......
    ......
    ......

    public function qbSelect(){

        //get是获取所有数据
        $students = DB::table('student')->get();
        dd($students);

        //first查询第一条数据
        $student = DB::table('student')->first();
        dd($student);

        //first + 排序
        $student = DB::table('student')
            ->orderBy('id', 'desc')
            ->first();
        dd($student);

        //加where
        $students = DB::table('student')
            ->whereRaw('id >= ? and age > ?', [5, 16])
            ->get();
        dd($student);

        //pluck返回结果集中指定字段
        $names = DB::table('student')->pluck('name');
        dd($names);

        //lists一样的效果,但可以指定某个键,作为下标
        $names = DB::table('student')->lists('name', 'id');
        dd($names);

        //select指定查询的字段
        $students = DB::table('student')->select('id', 'name', 'age')->get();
        dd($students);

        //chunk:每次查指定数据,比如2条,防止一次性查出,内存爆了,在某个地方停止,就return false
        echo '<pre>';
        DB::table('student')->chunk(2, function($students){

            var_dump($students);

            //条件,停止就返回false
            //return false;
        });

        //聚合函数
        var_dump(DB::table('student')->count());
        var_dump(DB::table('student')->max('age'));
        var_dump(DB::table('student')->min('age'));
        var_dump(DB::table('student')->avg('age'));
        var_dump(DB::table('student')->sum('age'));

        return "qbSelect";
    }

    public function qbDelete(){

        $num = DB::table('student')
            ->where('id', 2)
            ->delete();
        var_dump($num);

        $num = DB::table('student')
            ->where('id', '>=', 4)
            ->delete();
        var_dump($num);

        //删除所有
        DB::table('student')->truncate();
        return "qbDelete";
    }

    public function qbModify(){

        $num = DB::table('student')
            ->where('id', 2)
            ->update(['age' => 50]);

        DB::table('student')->increment('age', 2);
        DB::table('student')->decrement('age', 3);
        var_dump($num);

        //同时修改
        $num = DB::table('student')
            ->where('id', 12)
            ->decrement('age', 2, ['name' => '呵呵']);
        var_dump($num);
        return "qbModify";
    }

    public function qbInsert(){

        $bool = DB::table('student')->insert(
            ['name' => '小白', 'age' => 16]
        );
        var_dump($bool);
        $id = DB::table('student')->insertGetId(
            ['name' => '小黄', 'age' => 15]
        );
        var_dump($id);
        $bool = DB::table('student')->insert([
            ['name' => 'name1', 'age' => 30],
            ['name' => 'name2', 'age' => 31]
        ]);
        var_dump($bool);
        return "qbInsert";
    }

}

?

?

?

?

?

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章           查看所有文章
加:2022-05-11 16:14:38  更:2022-05-11 16:14:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年3日历 -2024/3/29 23:47:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码