婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > laravel框架數據庫操作、查詢構建器、Eloquent ORM操作實例分析

laravel框架數據庫操作、查詢構建器、Eloquent ORM操作實例分析

熱門標簽:揚州地圖標注app 青島語音外呼系統招商 山西探意電話機器人 岳陽外呼型呼叫中心系統在哪里 騰訊外呼管理系統 昭通辦理400電話 河南電銷卡外呼系統哪家強 山西回撥外呼系統 百應電話機器人服務

本文實例講述了laravel框架數據庫操作、查詢構建器、Eloquent ORM操作。分享給大家供大家參考,具體如下:

1、連接數據庫

laravel連接數據庫的配置文件位于config/database.php中,在其中connection字段中包含laravel所支持的數據庫的配置信息,可以看到其中有主機、端口、數據庫、用戶名、密碼等信息:

'mysql' => [
  'driver' => 'mysql',
  'host' => env('DB_HOST', 'localhost'),
  'port' => env('DB_PORT', '3306'),
  'database' => env('DB_DATABASE', 'forge'),
  'username' => env('DB_USERNAME', 'forge'),
  'password' => env('DB_PASSWORD', ''),
  'charset' => 'utf8',
  'collation' => 'utf8_unicode_ci',
  'prefix' => '',
  'strict' => false,
  'engine' => null,
],

其中都是引入env文件中的默認值,laravel目錄最外層有.env文件,在其中配置對應的默認值

DB_HOST=數據庫服務器地址
DB_PORT=數據庫端口
DB_DATABASE=數據庫名
DB_USERNAME=用戶名
DB_PASSWORD=密碼

2、原生SQL操作數據庫

在controller中對數據庫進行增刪改查的操作

public static function testDB(){
  //增加一條數據
  DB::insert("insert into student(name,age) values(?,?)",['sandy',19]);
  //刪除一條數據
  DB::delete('delete from student where name=?',['sandy']);
  //修改一條數據
  DB::update('update student set sex=? where name=?',['男','tory']);
  //查詢數據
  $res=DB::select('select * from student');
  //進行數據庫通用操作
  DB::statement('drop table users');
  //打印結果
  dd($res);
}

其中通過?占位符的方式進行了參數綁定,以此來防止數據庫注入攻擊,也可以通過命名綁定的方式:   

$res = DB::select('select * from users where id = :id', ['id' => 1]);

3、通過查詢構建器操作數據庫

Laravel將常用的數據庫操作封裝為接口函數提供給用戶調用,從而使數據庫操作更為便捷,這些接口就是查詢構建器(query builder)。而且通過PDO綁定的方式避免SQL注入攻擊,在使用查詢構建器時不必考慮過濾用戶輸入。

3.1、得到結果集

lavarel查詢的返回結果集合是StdClass,可以通過$res->name類似訪問對象屬性的方式訪問返回值。如果要查詢整個表使用get(),查詢表中一條數據使用first(),查詢一條數據的某個字段用value(),查詢表中所有數據的某個字段用pluck()

//get()返回表中所有數據
$res=DB::table('student')->get();
//first()返回結果集中的第一條數據
$res=DB::table('student')->where('id','1001')->first();
//value()返回一條數據中的指定字段
$res=DB::table('student')->where('id','1003')->value('name');
//pluck()返回結果集中name字段的所有值
$res=DB::table('student')->pluck('name');

當結果集中的數據過多時,可以通過分塊的方式返回結果集,chunk函數第一個參數為分塊的大?。ㄒ悦繅K2個數據的方式返回結果集),第二個參數為回調函數,當其返回false時就停止結果集的返回:

DB::table('student')->chunk(2,function ($res){
  foreach ($res as $user){
    var_dump($user);
    if ($user->id >=1003) return false;
  }
});

3.2、增刪改查

//增加一條數據
DB::table('student')->insert(['name'=>'李four','sex'=>'男','age'=>22]);
//增加多條數據
DB::table('student')->insert([
  ['name'=>'wang五','sex'=>'女','age'=>21],
  ['name'=>'zhao六','sex'=>'女','age'=>20],
]);
//刪除數據
DB::table('student')->where('id','>=',1006)->delete();
//刪除整個表
DB::table('student')->truncate();
//修改數據
DB::table('student')->where('id',1005)->update(['sex'=>'女','age'=>21]);
//自增increment、自減decrement,默認增1
DB::table('student')->where('id',1005)->increment('age',2);
//自增同時可以進行修改
DB::table('student')->where('id',1005)->increment('age',1,['sex'=>'女']);
//查詢指定字段
$res=DB::table('student')->select('name','age')->get();

3.3、查詢條件

通過查詢構建器的where方法可以添加數據庫查詢條件,where()接收三個參數:字段名、操作符、值,操作符如果是'='可以省略,例如查詢id>=1003的數據:

$res=DB::table('student')->where('id','>=',1003)->get();

也可以通過條件數組傳入多個限制條件,比如查詢id>=1003并且id1005:

$res=DB::table('student')->where([
  ['id','>=',1003],
  ['id','',1005]
])->get();

通過orwhere()來連接兩個并列條件,例如查詢id>=1003或者id1002的數據:

$res=DB::table('student')->where('id','>=',1003)->orwhere('id','',1002)->get();

whereBetween()查詢位于某個區間的數據:

$res=DB::table('student')->whereBetween('id',[1003,1006])->get();

when()來判斷某個查詢是否執行,例如當$order為true時,才會執行排序:

$order=false;
$res=DB::table('student')->when($order,function ($query){
  return $query->orderBy('age','desc');       //$order為true時才執行此語句
})->get();

3.4、排序、分組、限定

//orderBy對age字段升序
$res=DB::table('student')->orderBy('age','asc')->get();
//按照create_at字段進行時間排序
$res=DB::table('student')->latest('create_at')->get();
//分組
$res=DB::table('student')->groupBy('sex')->get();
//跳過一條數據后返回2條數據
$res=DB::table('student')->skip(1)->limit(2)->get();

3.5、聚合函數

laravel查詢構建器還提供了聚合函數用于操作查詢的結果集,包括count(計數)、sum(求和)、avg(平均值)、max(最大值)、min(最小值),例如求年齡平均值:

$res=DB::table('student')->avg('age');

4、Eloquent ORM

ORM是對象關系映射(Object Relational Mapping)的簡稱,是一種實現面向對象編程語言里不同類型系統的數據之間的轉換的技術,即將數據庫中的數據按照對象的形式進行組織,可以便于面向對象的程序進行數據庫操作,之前在學習mongoDB時使用過mongoose ORM組織mongoDB ,當時還沒有意識到這是orm。

Laravel內置的Eloquent ORM提供了一種便捷的方式幫助你組織數據庫數據,每張數據表都對應一個與該表進行交互的模型(Model),通過Model類,你可以對數據表進行查詢、插入、更新、刪除等操作。Eloquent ORM本質上是查詢構建器,因此上面查詢構建器所使用的方法Eloquent都可以使用。

4.1、創建Model

在app文件夾下新建model文件,每個數據庫都需要對應一個model,例如創建一個Student模板類:

namespace App;
use Illuminate\Database\Eloquent\Model;
class Student extends Model
{
  //指定對應的表
  protected $table='student';
  //指定主鍵
  protected $primaryKey='id';
  //允許批量賦值的字段
  protected $fillable=['name','age'];
  //不允許批量賦值的字段
  protected $guarded=['created_at'];
}

模板類會默認對應小寫首字母末尾加s的數據庫,例如Student模板會在當前數據庫中查找students表。如果需要自定義表名,則需要重寫$table變量來指定表名。

Eloquent默認的主鍵為'id',且該字段為自增int型,如果需要自定義主鍵,可以通過$primaryKey來指定。

Eloquent默認會管理數據表的創建時間、更新時間,對應數據表中的created_at、updated_at字段,你需要在創建表時包含這兩個字段。如果不需要管理,可以令public $timestamps = false;。否則會報錯

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'updated_at' in 'field list'

也可以自定義兩個時間為你數據庫中的字段:

const CREATED_AT = 'my_create';
const UPDATED_AT = 'my_update';

4.2、Eloquent操作數據庫

  • 新增數據有兩種方法,一是通過新建ORM實例,而是通過create方法。在使用create批量添加時,需要在模板中通過$fillable指定可以賦值的字段,也可以$guard指定不允許賦值的字段。
//新建實例并賦值、保存
$stu=new Student();
$stu->name='orm2';
$stu->save();
//create方法批量添加數據
Student::create(['name'=>'orm3','age'=>13]);

  • 刪除數據也有兩種方法,一是通過find方法刪除指定主鍵,二是通過查詢構建器:
//destroy刪除指定主鍵值
Student::destroy(1006,1007);
//通過查詢構建器刪除
Student::where('id',1008)->delete();

  • 修改數據:①通過ORM實例來修改并保存②通過查詢構建器
//通過返回Student對象進行修改
$stu=Student::find(1005);
$stu->age=21;
$stu->save();
//通過查詢構建器修改
Student::where('id',1005)->update(['age'=>22]);

  • 查找數據:
//查詢表中所有記錄
$table=Student::all();
//根據id查詢一條數據
$row=Student::find(1002);
dd($table);

當然也可以通過構建器的get()、first()來獲取數據

通過上面的增刪改查可以看出Eloquent可以使用查詢構建器的所有方法,除了增刪改查外,還有where、聚合函數等。

更多關于Laravel相關內容感興趣的讀者可查看本站專題:《Laravel框架入門與進階教程》、《php優秀開發框架總結》、《php面向對象程序設計入門教程》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家基于Laravel框架的PHP程序設計有所幫助。

您可能感興趣的文章:
  • laravel5.6 框架操作數據 Eloquent ORM用法示例
  • Laravel 手動開關 Eloquent 修改器的操作方法
  • Laravel框架Eloquent ORM新增數據、自定義時間戳及批量賦值用法詳解
  • Laravel框架Eloquent ORM簡介、模型建立及查詢數據操作詳解
  • Laravel框架Eloquent ORM修改數據操作示例
  • Laravel Eloquent分表方法并使用模型關聯的實現
  • laravel7學習之無限級分類的最新實現方法
  • laravel admin實現分類樹/模型樹的示例代碼
  • 如何使用Laravel Eloquent來開發無限極分類

標簽:南陽 銅川 鎮江 黃南 寶雞 宜賓 婁底 湛江

巨人網絡通訊聲明:本文標題《laravel框架數據庫操作、查詢構建器、Eloquent ORM操作實例分析》,本文關鍵詞  laravel,框架,數據庫,操作,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《laravel框架數據庫操作、查詢構建器、Eloquent ORM操作實例分析》相關的同類信息!
  • 本頁收集關于laravel框架數據庫操作、查詢構建器、Eloquent ORM操作實例分析的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    91老师片黄在线观看| 综合网在线视频| 成人国产免费视频| 欧美精品免费视频| 日韩成人一区二区| 国产日韩欧美麻豆| 美女视频一区二区| 亚洲色图制服丝袜| 色又黄又爽网站www久久| 欧美群妇大交群中文字幕| 91免费观看在线| 亚洲一二三区不卡| 国产一区在线观看视频| 国产精品你懂的在线欣赏| 欧美三级资源在线| 成年人国产精品| 国产精品一区在线观看你懂的| ...中文天堂在线一区| 亚洲欧美在线视频观看| 视频一区视频二区中文字幕| 亚洲美女屁股眼交3| 色综合久久久久综合体桃花网| 成人一区二区在线观看| 国产一区二区中文字幕| 久久丝袜美腿综合| 99国产精品视频免费观看| 一区二区在线观看av| 91香蕉国产在线观看软件| 国产综合色精品一区二区三区| 99久久精品国产导航| 午夜视黄欧洲亚洲| 国产亲近乱来精品视频| 日韩精品一区二区三区视频| 首页国产欧美久久| 中文字幕一区二区三区精华液| 欧美自拍偷拍一区| 欧美丝袜第三区| 天天影视网天天综合色在线播放 | 亚洲色图色小说| 色婷婷精品久久二区二区蜜臀av| 黑人巨大精品欧美一区| 久久女同精品一区二区| 精品日本一线二线三线不卡| 久久久www成人免费无遮挡大片| 中文字幕国产一区| 亚洲电影欧美电影有声小说| 亚洲综合在线五月| 国产一区啦啦啦在线观看| 在线观看欧美精品| 久久精品人人做| 国产欧美一区二区精品忘忧草 | 亚洲成av人综合在线观看| 国产乱子伦一区二区三区国色天香| 精品一区二区在线观看| 99re66热这里只有精品3直播| 2023国产一二三区日本精品2022| 一区二区三区中文字幕| 国产成人夜色高潮福利影视| 欧美一区二区三区在线观看| 亚洲午夜精品在线| 不卡高清视频专区| 中文无字幕一区二区三区| 国产精品黄色在线观看| jlzzjlzz欧美大全| 亚洲国产成人午夜在线一区| 亚洲人成人一区二区在线观看 | 欧美日韩小视频| 亚洲福利视频一区二区| 成人高清在线视频| 欧洲一区二区av| 久久亚洲一区二区三区四区| 亚洲国产日产av| 日韩欧美高清一区| 蜜桃视频一区二区三区在线观看 | 日韩国产欧美在线视频| 欧美不卡视频一区| 国产精品白丝av| 国产精品九色蝌蚪自拍| 欧美三级中文字| 日韩在线卡一卡二| 久久毛片高清国产| 日韩高清在线观看| 中文字幕免费观看一区| 91丝袜美女网| 亚洲电影欧美电影有声小说| 日韩福利电影在线| 亚洲欧洲日本在线| 这里只有精品99re| 日韩激情视频网站| 国产日本欧美一区二区| 一本大道久久a久久综合| 精品在线播放免费| 日本va欧美va精品| 伊人一区二区三区| 综合亚洲深深色噜噜狠狠网站| 精品日产卡一卡二卡麻豆| 日本精品裸体写真集在线观看 | 久久久久久久久97黄色工厂| 欧美日韩国产小视频在线观看| 成人一道本在线| 亚洲国产精品精华液网站| 亚洲色图欧美偷拍| 成人美女在线视频| 国产成人免费9x9x人网站视频| 亚洲综合无码一区二区| 亚洲激情自拍偷拍| 中文字幕一区av| 国产精品久久久久影院老司| 精品国产成人在线影院| 精品国产青草久久久久福利| 在线观看91视频| 制服丝袜日韩国产| 日本欧美一区二区| 亚洲妇熟xx妇色黄| 久久综合久久久久88| 亚洲免费观看高清完整| 秋霞午夜av一区二区三区| 国产精品毛片a∨一区二区三区| 欧美精品vⅰdeose4hd| 欧美视频在线不卡| 日韩精品一区二区三区中文不卡| 久久久美女毛片| 亚洲第一电影网| 国产一区二区主播在线| 91久久国产综合久久| 欧美精品一区二区三区很污很色的| 久久蜜臀精品av| 石原莉奈一区二区三区在线观看| 日本美女一区二区三区视频| 国产成人精品影院| 欧美男同性恋视频网站| 亚洲欧美综合在线精品| 国产麻豆成人传媒免费观看| 99国产欧美另类久久久精品| 日韩欧美国产综合在线一区二区三区 | 国内精品不卡在线| 欧美在线你懂得| 精品国产亚洲在线| 亚洲久草在线视频| 国产成人午夜99999| 日韩久久久精品| 亚洲一区二区三区免费视频| 香蕉久久夜色精品国产使用方法 | 国产福利一区二区| www.欧美色图| 亚洲综合色视频| 欧美日韩亚州综合| 性感美女久久精品| 91精品国产91久久综合桃花| 一区二区三区在线视频观看| 91老师片黄在线观看| 亚洲精品日日夜夜| 不卡欧美aaaaa| 亚洲影视在线观看| 欧美午夜精品一区| 美女视频黄 久久| 精品人伦一区二区色婷婷| 97精品国产97久久久久久久久久久久| 久久久久久亚洲综合影院红桃| 青青国产91久久久久久| 欧美日韩一区二区三区四区五区 | 91福利在线免费观看| 青青草国产精品97视觉盛宴 | www.日韩在线| 国产成人精品免费看| 一区二区三区在线观看国产| 日韩欧美国产三级电影视频| 色综合久久天天综合网| 97久久精品人人做人人爽50路 | 亚洲欧洲日韩女同| 国产日韩欧美在线一区| 国产农村妇女精品| 国产精品毛片久久久久久| 一区二区三区成人在线视频| 亚洲综合小说图片| 麻豆精品在线播放| 国产精品自拍av| 国产精品77777| av电影在线观看完整版一区二区| 99久久久精品| 日韩一区二区免费在线电影 | 国产精品天天摸av网| 亚洲桃色在线一区| 玖玖九九国产精品| 91小视频免费看| 欧美精品一区二区在线观看| 精品久久久久久久一区二区蜜臀| 精品国产一区二区精华 | 亚洲自拍偷拍图区| 亚洲图片自拍偷拍| 久99久精品视频免费观看| 一本到一区二区三区| 欧美精品一区二区在线播放| 亚洲一区二区三区中文字幕| 国产mv日韩mv欧美| 色婷婷av一区二区三区大白胸| 久久影院视频免费| 国产精品五月天| 国产成人精品亚洲777人妖 | 国产91对白在线观看九色|