### 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、第三种方法中,主方法也不外新增、修改、删除和查询;条件也是一样的,但设定条件的关键字还是要看框架的设定!多条件累加、限定得到预想的数据结果。