Copyright © 2022-2025 aizws.net · 网站版本: v1.2.6·内部版本: v1.25.2·
页面加载耗时 0.00 毫秒·物理内存 153.5MB ·虚拟内存 1438.1MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
查询生成器允许您以编程方式创建SQL查询。查询生成器可以帮助您编写更多可读的与SQL相关的代码。
要使用查询生成器,您应该遵循以下步骤 -
要构建一个 yii \ db \ Query 对象,您应该调用不同的查询构建器函数来定义SQL查询的不同部分。
步骤1 - 要显示查询构建器的典型用法,请按照 这种方式修改 actionTestDb 方法。
public function actionTestDb() {
//generates "SELECT id, name, email FROM user WHERE name = 'User10';"
$user = (new \yii\db\Query())
->select(['id', 'name', 'email'])
->from('user')
->where(['name' => 'User10'])
->one();
var_dump($user);
}
第2步 - 转到 http:// localhost:8080 / index.php?r = site / test-db ,您将看到以下输出。

在 其中() 函数定义了一个查询的WHERE片段。要指定 WHERE 条件,可以使用三种格式。
public function actionTestDb() {
$user = (new \yii\db\Query())
->select(['id', 'name', 'email'])
->from('user')
->where('name = :name', [':name' => 'User11'])
->one();
var_dump($user);
}
以下将是输出。

public function actionTestDb() {
$user = (new \yii\db\Query())
->select(['id', 'name', 'email'])
->from('user')
->where([
'name' => 'User5',
'email' => 'user5@gmail.com'
])
->one();
var_dump($user);
}
以下将是输出。

运算符格式允许您使用以下格式定义任意条件 -
[operator, operand1, operand2]
运营商可以 -
public function actionTestDb() {
$users = (new \yii\db\Query())
->select(['id', 'name', 'email'])
->from('user')
->where(['between', 'id', 5, 7])
->all();
var_dump($users);
}
以下将是输出。

所述 ORDERBY() 函数定义了ORDER BY片段。
示例
public function actionTestDb() {
$users = (new \yii\db\Query())
->select(['id', 'name', 'email'])
->from('user')
->orderBy('name DESC')
->all();
var_dump($users);
}
以下将是输出。

所述 GROUPBY() 函数定义的GROUP BY片段,而 具有() 方法指定HAVING片段。
示例 -
public function actionTestDb() {
$users = (new \yii\db\Query())
->select(['id', 'name', 'email'])
->from('user')
->groupBy('name')
->having('id < 5')
->all();
var_dump($users);
}
以下将是输出。

的 极限() 和 偏移() 方法定义了 LIMIT 和 OFFSET 片段。
示例 -
public function actionTestDb() {
$users = (new \yii\db\Query())
->select(['id', 'name', 'email'])
->from('user')
->limit(5)
->offset(5)
->all();
var_dump($users);
}
你可以看到下面的输出 -

该 警予\ DB \查询 类提供了一组用于不同目的的方法-
Active Record为访问数据提供了一个面向对象的API。Active Record类与数据库表关联。Yii为以下关系数据库提供Active Record支持 -MySQL 4.1或更高版本SQLite 2和3:Po ...