update docs

This commit is contained in:
crazywhalecc
2023-06-06 20:24:38 +08:00
committed by Jerry Ma
parent 731e1d81da
commit bb28a07c93
3 changed files with 58 additions and 5 deletions

View File

@@ -213,7 +213,7 @@ container()->get('xxx');
### db()
获取 Database 操作类。
获取 Database 数据库连接操作类。
- 定义:`db(string $name = '')`
- 返回:`ZM\Store\Database\DBWrapper`
@@ -245,6 +245,16 @@ $result = db('mydb')->fetchAllAssociative('SELECT * FROM users WHERE username =
var_dump($result[0]); // 假设数据库表只有 id 和 username 两列,这里返回了 ['id' => 1, 'username' => 'jerry']
```
有关此处数据库更详细的内容,请看 [SQL 数据库组件](/components/store/mysql.md)。
### zm_sqlite()
> 仅限于炸毛框架 3.2.0 及以上版本使用。
获取一个便捷 SQLite 模式的数据库操作对象。
有关此处数据库更详细的内容,请看 [SQL 数据库组件](/components/store/mysql.md)。
### sql_builder()
使用 SQL 语句构建器构建一个查询。
@@ -261,6 +271,16 @@ $result = sql_builder('mydb')->select('*')->from('users')->where('username = :us
// 结果与上方相同
```
有关此处数据库更详细的内容,请看 [SQL 数据库组件](/components/store/mysql.md)。
### zm_sqlite_builder()
> 仅限于炸毛框架 3.2.0 及以上版本使用。
获取一个便捷 SQLite 模式的数据库 SQL 语句构造器。
有关此处数据库更详细的内容,请看 [SQL 数据库组件](/components/store/mysql.md)。
### redis()
获取 Redis 操作类。有关 Redis 的更多详情和配置,见 [Redis 数据库组件](/components/store/redis)。

View File

@@ -13,7 +13,7 @@
| 1 | jack | man | 2021-10-12 |
| 2 | rose | woman | 2021-10-11 |
## 配置
## 连接池
炸毛框架的数据库组件支持原生 SQL、查询构造器去掉了复杂的对象模型关联同时默认为数据库连接池使开发变得简单。
@@ -46,9 +46,9 @@ $config['database'] = [
在设置了 enable 为 true 后,将创建对应数据库的连接池。在框架所有插件加载后启用前会创建连接池。
## 执行 SQL 语句
## 连接池模式
框架对于不同种类的 SQL 采用了统一的 wrapper 层,保证不同数据库调用时的接口尽可能相同。获取数据库操作对象很简单,通过方法 `db()`
框架对于不同种类的 SQL 采用了统一的 wrapper 层,保证不同数据库调用时的接口尽可能相同。从连接池拿取对象很简单,通过方法 `db()`
```php
// 获取 default 名称的数据库连接
@@ -57,6 +57,34 @@ $db = db();
$sqlite = db('sqlite_db1');
```
返回的对象为 `DBWrapper` 对象。
## 便捷 SQLite 模式
对于 SQLite 数据库来说,使用连接池可能较为笨重,而且在开发者使用框架开发炸毛框架的插件分发时,可能需要使用 SQLite 数据库,但是又不想使用连接池。
框架在 3.2.0 版本开始提供了便捷 SQLite 访问,无需任何配置,仅需 `zm_sqlite('dbname.db')` 方式即可创建和访问一个 SQLite 数据库。
```php
// 连接一个 SQLite 数据库,在相对路径下,文件会保存到 zm_data/db/ 目录
$db = zm_sqlite('a.db');
// 连接一个 SQLite 数据库,可以是任意绝对路径
$db = zm_sqlite('/home/zhamao/a.db');
// 在连接 SQLite 文件时,如果设置了 create_new 参数为 False文件不存在时将会抛出异常
$db = zm_sqlite('a.db', create_new: false);
// 在连接 SQLite 文件时,如果设置了 keep_alive 参数为 False框架将不会缓存已经打开的 PDO 对象,而是每次都会重新打开。(默认为 True为了提升性能
$db = zm_sqlite('a.db', keep_alive: false);
```
返回的对象为 `DBWrapper` 对象。
::: tip 提示
无论是使用连接池的 `db()` 还是便捷 SQLite 模式的 `zm_sqlite()`,获取的都是 `DBWrapper` 对象,文档只是为了书写方便。
实际使用过程中如果要使用便捷 SQLite 模式只需将 `db` 替换为 `zm_sqlite` 即可。
:::
### 执行预处理 SQL 语句
预处理查询很巧妙地解决了 SQL 注入问题,并且可以方便地绑定参数进行查询。
@@ -241,13 +269,17 @@ $resultSet = sql_builder()->select(['username', 'gender'])->from('users')->where
### 获取 SQL Builder
使用全局函数 `sql_builder()` 即可。
连接池的访问模式,使用全局函数 `sql_builder()` 即可。便捷 SQLite 模式,使用全局函数 `zm_sqlite_builder()` 即可。
```php
// 获取 default 名称的数据库连接的 builder
$queryBuilder = sql_builder();
// 获取对应名称的数据库连接的 builder名称等于上方配置中的键名
$queryBuilder = sql_builder('sqlite_db1');
// 使用便捷 SQLite 模式获取 builder
$queryBuilder = zm_sqlite_builder('mydb.db');
// 在使用便捷 SQLite 模式时,也可以传入 create_new 参数和 keep_alive 参数
$queryBuilder = zm_sqlite_builder('/home/a/d.db', create_new: false, keep_alive: false);
```
### 构建一个普通查询

View File

@@ -1,5 +1,6 @@
# 更新日志
> 本页面由框架命令 `./zhamao generate:text update-log-md` 自动生成
## v3.1.14