事务操作Transaction
方法: inTransaction()
,beginTransaction()
,commit()
,rollBack()
// 开始事务
Db::transaction();
try {
// 执行多个操作
$data = [
'title' => 'new title',
'status' => 2
];
// 更新操作
Db::table('test')->where('id', 10)->update($data);
// 插入操作
Db::table('test_log')->insert([
'action' => 'update',
'table' => 'test',
'record_id' => 10,
'data' => json_encode($data),
'time' => date('Y-m-d H:i:s')
]);
// 所有操作成功,提交事务
Db::commit();
} catch (Exception $e) {
// 发生错误,回滚事务
Db::rollBack();
// 记录错误信息
Logger::error('事务处理失败: ' . $e->getMessage());
throw $e; // 可选:将异常继续抛出
}
结构维护Structure
方法有: truncate(),drop(),optimize(),analyze(),check(),checksum(),repair()
// 检查表是否有错误
$result = Db::table('users')->check();
// 优化表结构,整理碎片,提高查询效率
$result = Db::table('users')->optimize();
// 分析表结构,更新统计信息,有助于查询优化
$result = Db::table('users')->analyze();
// 计算表的校验和,用于验证数据完整性
$result = Db::table('users')->checksum();
// 尝试修复损坏的表
$result = Db::table('users')->repair();
// 清空表中的所有数据(比DELETE更快,会重置自增ID)
$result = Db::table('temp_data')->truncate();// 返回影响的行数
// 完全删除表结构和数据
$result = Db::table('old_table')->drop();// 返回影响的行数