數據表php
CREATE TABLE IF NOT EXISTS students( `id` INT AUTO_INCREMENT PRIMARY KEY, `name` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '姓名', `age` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '年齡', `sex` TINYINT UNSIGNED NOT NULL DEFAULT 10 COMMENT '性別', `created_at` INT NOT NULL DEFAULT 0 COMMENT '新增時間', `updated_at` INT NOT NULL DEFAULT 0 COMMENT '修改時間' )ENGINE=InnoDB DEFAULT CHARSET=UTF8 AUTO_INCREMENT=1001 COMMENT='學生表';
Laravel查詢構造器(query builder)提供方便、流暢的接口,用來創建及執行數據庫查找語法sql
使用PDO參數綁定,以保護應用程序免於SQL注入。所以傳入的參數不需額外轉義特殊字符數據庫
基本能夠知足全部的數據庫操做,並且在全部支持的數據庫系統上均可以執行數組
<?php /** * Created by PhpStorm. * User: chuang * Date: 17-1-14 * Time: 下午4:29 */ namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class StudentController extends Controller { //新增數據 public function insert(){ //返回一個布爾值 //table內傳入表名 $bool = DB::table('students')->inster( //將參數以數組的形式傳入 [ 'name'=>'bigz', 'age'=>18 ] ); var_dump($bool); //插入並返回id $id = DB::table('students')->insertGetId( [ 'name'=>'bigz', 'age'=>19 ] ); var_dump($id); //一次插入多條數據 $bools = DB::table('students')->insert( [ ['name'=>'bigz','age'=>18], ['name'=>'zbig','age'=>21] ] ); var_dump($bools); } }
<?php /** * Created by PhpStorm. * User: chuang * Date: 17-1-14 * Time: 下午4:29 */ namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class StudentController extends Controller { //更新數據 /* * 更新主要有兩方面內容 * 一、更新指定內容 * 二、自增和自減 */ public function update(){ //一、更新指定內容 //返回影響行數 $num = DB::table('students') ->where('name','bigz')//更新條件 ->update(['age'=>22]);//更新內容 var_dump($num); //二、自增,自減 //自增,默認值是1,返回影響行數 $num = DB::table('students')->increment('age'); var_dump($num); //自定義自增數值 $num = DB::table('students')->increment('age',3); var_dump($num); //自減,默認值是1, 返回影響行數 $num = DB::table('students')->decrement('age'); var_dump($num); //帶條件的自增與自減 $num = DB::table('students') ->where('name','bigz') ->increment('age'); var_dump($num); //自增,自減時同時修改其餘字段 $num = DB::table('students') ->where('id',1) ->increment('age',['name'=>'BigZ']); var_dump($num); } }
<?php /** * Created by PhpStorm. * User: chuang * Date: 17-1-14 * Time: 下午4:29 */ namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class StudentController extends Controller { //刪除數據 public function delete(){ //刪除全表 $num = DB::table('students') ->delete(); var_dump($num); //刪除指定數據 $num = DB::table('students') ->where('id',1) ->delete(); var_dump($num); //刪除id大於等於6的數據 $num = DB::table('students') ->where('id','>=',6) ->delete(); var_dump($num); //清空數據表,不返回任何數據 DB::table('students')->turncate(); } }
<?php /** * Created by PhpStorm. * User: chuang * Date: 17-1-14 * Time: 下午4:29 */ namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class StudentController extends Controller { //查詢數據 public function query(){ //get()獲取全部數據 $students = DB::table('students')->get(); dd($students); //first()獲取結果集中的第一條數據 $student = DB::table('students')->first(); dd($student); $student = DB::table('students')->orderBy('age','desc')->first(); dd($student); //where() //返回年齡大於18的全部數據 $students = DB::table('students') ->where('age','>',18) ->get(); dd($student); //多條件查詢 $students = DB::table('students') ->whereRaw('id >= ? and age > ?',[20, 18]) ->get(); dd($students); //pluck() 返回結果集中指定的字段 $names = DB::table('students') ->pluck('name'); dd($names); //lists() 返回結果集中指定的字段 $names = DB::table('students') ->lists('name'); dd($names); $names = DB::table('students') // 指定id做爲數組的key ->lists('name','id'); dd($names); //select() 查詢指定的字段 $students = DB::table('students') ->select('id','name','age') ->get(); dd($students); //chunk() 限制每次查詢數據的個數 DB::table('students')->chunk(1000,function ($students){ //把每次查詢的數據打印出來 dd($students); //想要在指定的條件下中止此語句只需 return false; }); } }
<?php /** * Created by PhpStorm. * User: chuang * Date: 17-1-14 * Time: 下午4:29 */ namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; class StudentController extends Controller { //聚合函數 public function funcs(){ //count() 返回數據條數 $num = DB::table('students')->count(); var_dump($num); //max() //返回數據表中最大的年齡數值 $max = DB::table('students')->max('age'); var_dump($max); //min() 同 max() //avg() 用法同 max() 返回平均數 //sum() 用法同max() 返回總和 } }