ThinkPHP5数据库操作

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();
}

Leave a Comment

豫ICP备19001387号-1