文章目錄
準備操作
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);
}
獲取某些字段數據
- select(字段1, 字段2…)
查詢這些字段
public function select() {
$db = DB::table('student');
$data = $db -> select('age','name') -> get();
dd($data);
}
排序操作
- orderBy(字段,排序規則)
對字段進行排序
public function select() {
$db = DB::table('student');
$data = $db -> orderBy('age','desc') -> get();
dd($data);
}
分頁操作
- offset(a)
偏移量 - limit(a)
獲取條目
public function select() {
$db = DB::table('student');
$data = $db -> offset(0) -> limit(2) -> get();
dd($data);
}
刪除數據
delete()
- delete()
刪除一條
public function del() {
DB::table('student') -> where('id','=','101') -> delete();
}
truncate
- truncate()
刪除整表
public function del() {
DB::table('student') -> truncate();
}
執行任意的SQL語句
因爲這些純粹就是SQL語句,此處就不詳細演示了。
執行任意insert、update、delete語句
- DB::statement(SQL語句)
執行任意select語句
- DB::select(SQL語句)