数据查询Fetch
可使用的方法有:get(),getAll(),first()
,value()
,column()
,find()
查询多条数据Get方法
get($type),getAll($type), 如果$type为true时,不执行查询,直接返回构建的sql语句
// 获取单条记录
Db::table('test')->get();
// 生成SQL: "SELECT * FROM test LIMIT 1"
// 获取多条记录
Db::table('test')->getAll();
// 生成SQL: "SELECT * FROM test"
// 获取指定字段的单条记录
Db::select('title')->table('pages')->where('id', 17)->get();
// 生成SQL: "SELECT title FROM pages WHERE id='17' LIMIT 1"
// 获取指定字段的多条记录
Db::select('username')->table('users')->where('status', 1)->getAll();
// 生成SQL: "SELECT username FROM users WHERE status='1'"
获取第一条数据 First
成功返回一维数据,失败返回null
$user = Db::table('users')->where('status', 1)->first();
// 结果:单个用户对象或数组
获取单一字段 Value
成功返回字段值对应的数值,失败返回null, 这个方法可以从一条数据中获取到单一字段的值
// 获取单个字段的值
$username = Db::table('users')->where('id', 1)->value('username');
// 结果:字符串 "admin"
按字段提取列数据column
获取单列数据:
// 获取所有用户名
$usernames = Db::table('users')->column('username');
// 结果: ['admin', 'user1', 'user2', ...]
构建键值对:
// 获取用户ID到邮箱的映射
$emails = Db::table('users')->column('email', 'id');
// 结果: [1 => 'admin@example.com', 2 => 'user1@example.com', ...]
用于选择框:
// 获取分类下拉框选项
$categories = Db::table('categories')->column('name', 'id');
// 在视图中使用
foreach ($categories as $id => $name) {
echo "{$name}";
}
获取查询次数queryCount
返回查询的数据条数.
// 执行一系列查询操作
$db = Db::table('users')->where('status', 1)->get();
$articles = Db::table('articles')->limit(10)->get();
$category = Db::table('categories')->where('id', 5)->first();
// 获取已执行的查询总数
$count = Db::queryCount();
echo "执行的查询总数: " . $count; // 输出: 执行的查询总数: 3
影响行数numRows()
返回数据影响条数.
// 查询示例
$users = Db::table('users')->where('status', 1)->get();
$affectedRows = Db::numRows();
echo "查询影响的行数: " . $affectedRows; // 例如: 查询影响的行数: 5
// 更新示例
Db::table('articles')->where('category_id', 3)->update(['status' => 0]);
$updatedRows = Db::numRows();
echo "更新影响的行数: " . $updatedRows; // 例如: 更新影响的行数: 8
// 删除示例
Db::table('comments')->where('post_id', 10)->delete();
$deletedRows = Db::numRows();
echo "删除影响的行数: " . $deletedRows; // 例如: 删除影响的行数: 12
最新插入的id号insertId()
使用此方法,当插入数据后,可以查询最后插入的数据主键值(比如id值)
// 插入单条数据
$data = [
'title' => '新文章标题',
'content' => '文章内容',
'created_at' => date('Y-m-d H:i:s')
];
Db::table('articles')->insert($data);
$newArticleId = Db::insertId();
echo "新插入文章的ID: " . $newArticleId; // 例如: 新插入文章的ID: 25