直接返回Sql语句
使用getSql()
// 查询
$sql = Db::table('users')->where('id', 1)->getSql()->get();
// 插入
$data = ['name' => 'test', 'email' => 'test@example.com'];
$sql = Db::table('users')->getSql()->insert($data);
// 更新
$data = ['name' => 'updated'];
$sql = Db::table('users')->where('id', 1)->getSql()->update($data);
// 删除
$sql = Db::table('users')->where('id', 1)->getSql()->delete();
使用参数方式$returnSql
// 使用 get() 方法返回 SQL 而不执行
$sql = Db::table('users')->where('id', 1)->get(true);
// php8+也可以这样传递
$sql = Db::table('users')->where('id', 1)->get(returnSql: true);
// 插入
$data = ['name' => 'test', 'email' => 'test@example.com'];
$sql = Db::table('users')->insert($data, true);
// 更新
$data = ['name' => 'updated'];
$sql = Db::table('users')->where('id', 1)->update($data, true);
// 删除
$sql = Db::table('users')->where('id', 1)->delete(true);
// 插入
$data = ['name' => 'test', 'email' => 'test@example.com'];
$sql = Db::table('users')->insert($data, true);
// 更新
$data = ['name' => 'updated'];
$sql = Db::table('users')->where('id', 1)->update($data, true);
// 删除
$sql = Db::table('users')->where('id', 1)->delete(true);
说明:以上两个方法,仅返回sql语句,不执行数据库操作。
用于获取最后执行的 SQL 语句
// 执行数据库操作
$users = Db::table('users')->where('status', 1)->get();
// 获取最后执行的SQL语句
$lastSql = Db::getLastSql();
echo "最后执行的SQL: " . $lastSql;
// 获取带执行时间的SQL语句
$sqlInfo = Db::getLastSql(true);
echo "最后执行的SQL: " . $sqlInfo['sql'] . " (执行时间: " . $sqlInfo['time'] . ")";
上次查询的sql语句lastQuery()
// 获取最后一条SQL语句
$lastSql = Db::lastQuery();
// 获取最后一条SQL语句及其执行时间信息
$lastSqlWithTime = Db::lastQuery(true);
// 返回: ['sql' => 'SELECT * FROM users', 'time' => '10.50ms', 'timestamp' => 1234567890.123]
查询总数queryCount()
返回查询的总数
Db::queryCount(); // 页面从开始到结束执行的所有SQL查询总数
//1