### Db::execute(sql語句)
/**
* 1、使用方法:Db::execute(sql語句); 來執行數據庫操作
* 1.1 在sql語句中使用占位符來實現數據的預處理,排除故障
* 1.2 占位符可以是任意的字符串也可以用問號
*/
Db::execute("update users set pd=:total where id=:id",[':total'=>"adbdef",':id'=>5]);
Db::execute("update users set pd=? where id=?",["adbdef",6]);
### Db::query( sql語句)
$db=Db::query("select * from users where id > ? and id < ? ",[2,5]);
$db=Db::query("select * from users where name like ?",['%周%']) ;
p這種方法與上面的方法是一樣的。都是要輸入完整的sql語句,來查詢或操作。唯一的特點就是都使用了點位符來實現預處理。
### Db::table('user')->mothed();
這種方法有2個關鍵點:
table('user') 指定表名
mothed() 要執行的方法,查詢、修改、刪除
多條件的查詢語句。
$db=Db::table('users')->where('id','>',1)->where('name','like','%周%')->get();
插入數據
$db=Db::table('users')->insert(['name'=>'李向華']);
$db=Db::table('users')->where('name','=','李向華')->get();
更新數據
$db=Db::table('users')->where("id",5)->update(['pd'=>'abcdef']);
$db=Db::table('users')->where('id','=',5)->get();
刪除也一樣
#### replace
Db::table('users')->replace(['id'=>1,'name'=>'向軍']);
這個replace替換方法:如果指定的主鍵id存在,則將此id中的指定字段值替換掉;如果此方法中沒有傳遞id這個的值,則此方法會插入新的數據!這個有點特殊!
Db::table('user')-> insertGetId(['username'=>'向軍','qq'=>'2300071698']);
添加一條新記錄的同時,返回此新增記錄的id值!
小結:
1、數據操作有3種方式:
Db::execute(sql)
Db::query(sql)
Db::table(tableName)->mothed()
2、三種方式中,前二種使用完整的sql語句來執行操作,是使用數據庫默認的操作方法。其最大的特點在于,使用了預處理方法:即不直接把變量數據傳到sql語句之中,而是用符號來先代替檢查,沒有錯誤再執行。
3、第三種方法是被框架封裝過的操作方法,可以通過一系列鏈式的條件設定來執行特定的方法。這些鏈式加入的條件與指定執行的方法都可以看作是一系列的參數,執行時會來自動檢測哪些是參數,哪些是方法名,所以這此條件的先后是沒有順序的!
4、第三種方法中,主方法也不外新增、修改、刪除和查詢;條件也是一樣的,但設定條件的關鍵字還是要看框架的設定!多條件累加、限定得到預想的數據結果。