ThinkPHP5中数据库在database.php
中配置,需要数据库操作时自己完成连接,也可以在Db::connect()
中动态地传入字符串或数组类型的数据库连接信息。
Db类
Db
类使用前需先声明引用 use think\Db;
$user = Db::table("movesay_user")->where("id",2)->find();
$sql = "select * from movesay_user where id='2'";
$rs = Db::query($sql);
db助手
$user = db('User')->where(['id'=>2])->find();
插入数据
$user = [
'name' => '',
'passowrd' => '',
......
]
db('User')->insert($user);
更新数据
$user = [
'name' => '',
'passowrd' => '',
......
]
db('User')->where(['id'=>2])->update($user);
事务
单表事务
比如User
表,所有事务都是在User
内,定义好了模型UserModel
,,则可以这么操作:
$user_mdl = new UserModel();
$user_mdel->startTrans();
....
if($all_right){
$user_mdel->commit();
}else{
$user_mdel->rollback();
}
多表事务
如果事务涉及多张表,则上面的方法就不管用了,需要这么写
Db::startTrans();
Db::table('user')->where(['id' => 1])->setInc('balance', 100);
Db::table('fee')->where(['user_id' => 1])->setInc('total', 100);
....
if($all_right){
Db::commit();
}else{
Db::rollback();
}