StartMVC开发手册

可以快速上手的开发文档

手册目录

数据查询

数据查询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