TP5-操作数据库

发布时间 2023-04-10 17:40:51作者: 亜光君
Db::query('select * from tp5_user where id = ? || name = ?',[$id,'Tom']);
Db::execute('insert into tp5_user(name,age) values(?,?)',[$name,$age]);
Db::execute("update tp5_user set age = ? where id = ?" , [$age,$id]);
Db::execute("delete from tp5_user where id = ?",[$id]);

query 方法用于查询,默认情况下返回的是数据集(二维数组), execute 方法的返回值是影响的行数。

Db::table('tp5_user')->where($key ,$val)->select();
Db::table('tp5_user')->insert($data);
Db::table('tp5_user')->insertAll($data);
Db::table('tp5_user')->where('id',1)->update($data);
Db::table('tp5_user')->delete(18);
Db::table('tp5_user')->delete([19,20,24]);
Db::table('tp5_user')->where('id',25)->delete();
Db::table('tp5_user')->where('id','>=',10)->where('id','<=',12)->delete();

数据表的前缀为 think_ ,table方法改为name

Db:name('data')->

db('tp5_user')->where('id' , 1)->select();
db('tp5_user')->insert($data);
db('tp5_user')->insertAll($data);
db('tp5_user')->where('id',1)->update($data);
db('tp5_user')->delete(9);
db('tp5_user')->where('id',8)->delete();

db 助手函数默认会每次重新连接数据库,因此应当尽量避免多次调用。

Db::table('tp5_user')
            ->where('id','>=',1)
            ->field('name')
            ->limit(3)
            ->select();

Db::table('tp5_user')
            ->where('id',1)
            ->field('name','age')
            ->find();

select 方法用于查询数据集,如果查询成功,返回的是一个二维数组,如果没有满足条件的话则返回空数组
find 方法用于查找满足条件第一个记录(即使你的查询条件有多个符合的数据)成功返回一维数组,失败返回null

事务支持
自动事务

Db::transaction(function () {
    Db::table('think_user')
    ->delete(1);
    Db::table('think_data')
    ->insert(['id' => 28, 'name' => 'thinkphp', 'status' => 1]);
});

手动事务

Db::startTrans();
try {
    Db::table('think_user')
    ->delete(1);
    Db::table('think_data')
    ->insert(['id' => 28, 'name' => 'thinkphp', 'status' => 1]);
    // 提交事务
    Db::commit();
} catch (\Exception $e) {
    // 回滚事务
    Db::rollback();
}