06_Laravel數據庫DB類的使用

準備操作

student表

這裏我提供數據庫表,數據自己添加吧…

CREATE TABLE `student` (
  `id` int(11) PRIMARY KEY NOT NULL AUTO_INCREMENT,
  `NAME` varchar(20) DEFAULT NULL,
  `age` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

INSERT INTO student VALUES(NULL,'小馬',55);
INSERT INTO student VALUES(NULL,'小騰',45);
INSERT INTO student VALUES(NULL,'小飛',55);
INSERT INTO student VALUES(NULL,'小炎',20);

在這裏插入圖片描述

控制器

php artisan make:controller DbController

web.php控制器路由配置

Route::get('db/add','DbController@add');
Route::get('db/del','DbController@del');
Route::get('db/update','DbController@update');
Route::get('db/select','DbController@select');

配置

.env文件中的配置

在這裏插入圖片描述

config中的database.php配置

我比較偏向於第一種(.env),兩種選擇其中一個即可。
使用env函數,表示先從env文件裏面獲取,如果獲取成功則使用,如果獲取失敗,則使用env函數的第二個參數。

在這裏插入圖片描述

引入門面

查閱app.php後,發現DB門面已經被定義過別名了,所以直接使用別名即可。

獲取表實例

DB::table(表名);

插入數據

insert()

insert(數組)
可以同時添加一條或多條,返回值是布爾類型。

public function add() {
	$db = DB::table('student');
	$db -> insert([
		[
			'name'	=>	'小李',
			'age'	=>	23
		],
		[
			'name'	=>	'小L',
			'age'	=>	13
		],
	]);
}

溫馨提示:截圖中顯示了三條,是因爲我同時執行完insert()和insertGetId()的結果
在這裏插入圖片描述

insertGetId()

  • insertGetId(一維數組)
    只能添加一條數據,返回自增的id。
public function add() {
	$db = DB::table('student');
	$db -> insertGetId([
		'name'	=>	'小X',
		'age'	=>	10
	]);
}

溫馨提示:截圖中顯示了三條,是因爲我同時執行完insert()和insertGetId()的結果
在這裏插入圖片描述

修改數據

update()

  • update()
    修改任意字段,返回所受影響的行數
public function update() {
	$db = DB::table('student');
	$db -> update([
		'age'	=>	0
	]);
}

在這裏插入圖片描述

where

  • where(字段, 運算符, 值)
    如果運算符爲“=”,則第二個參數可以不寫
  • 如何表示 and ?

    where() -> where() -> where() …

  • 如何表示or ?

    where() -> orWhere() -> orWhere() …

加入條件判斷

public function update() {
	$db = DB::table('student');
	$db -> where('id','>','104') -> update([
		'age'	=>	15
	]);
}

在這裏插入圖片描述

increment()

  • increment(字段[, 遞增值])
    某個字段遞增,默認值1
public function update() {
	$db = DB::table('student');
	$db -> where('id','=','104') -> increment('age',5);
}

在這裏插入圖片描述

decrement()

  • decrement(字段[, 遞減值])
    某個字段遞減,默認值1
public function update() {
	$db = DB::table('student');
	$db -> where('id','=','116') -> decrement('age');
}

在這裏插入圖片描述

查詢數據

get()

  • get()
    查詢所有
public function select() {
	echo "<pre>";
	$db = DB::table('student');
	print_r($db -> get());
}

在這裏插入圖片描述

get() + where()

public function select() {
	$db = DB::table('student');
	// 查詢id > 104 或 age = 0 的數據
	$data = $db -> where('id','>','104') -> orWhere('age','=','0') -> get();
	dd($data);
}

在這裏插入圖片描述

查詢單行數據

  • first()
    獲取第一條數據
public function select() {
	$db = DB::table('student');
	$data = $db -> first();
	dd($data);
}

在這裏插入圖片描述

獲取某個具體的值

  • value(字段)
    獲取這個字段的值
public function select() {
	$db = DB::table('student');
	$data = $db -> where('id','=','116') -> value('age');
	dd($data);
}

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-BQ6NFAGd-1583895006989)(images)]

獲取某些字段數據

  • select(字段1, 字段2…)
    查詢這些字段
public function select() {
	$db = DB::table('student');
	$data = $db -> select('age','name') -> get();
	dd($data);
}

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-lK46QP4X-1583895006990)(images)]

排序操作

  • orderBy(字段,排序規則)
    對字段進行排序
public function select() {
	$db = DB::table('student');
	$data = $db -> orderBy('age','desc') -> get();
	dd($data);
}

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-rbRZ3YGZ-1583895006992)(images)]

分頁操作

  • offset(a)
    偏移量
  • limit(a)
    獲取條目
public function select() {
	$db = DB::table('student');
	$data = $db -> offset(0) -> limit(2) -> get();
	dd($data);
}

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-WD93ePvu-1583895006994)(images)]

刪除數據

delete()

  • delete()
    刪除一條
public function del() {
	DB::table('student') -> where('id','=','101') -> delete();
}

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-7OHD4BqG-1583895006996)(images)]

truncate

  • truncate()
    刪除整表
public function del() {
	DB::table('student') -> truncate();
}

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-tc6qRmJp-1583895006997)(images)]

執行任意的SQL語句

因爲這些純粹就是SQL語句,此處就不詳細演示了。

執行任意insert、update、delete語句

  • DB::statement(SQL語句)

執行任意select語句

  • DB::select(SQL語句)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章