Mysql【⛔计划废弃】
<br/>
>i 本文档的最新修订日期是:
> **2021-07-19**
# Mysql(计划废弃)
>d Mysql模块即将计划废弃,将在6.x版本中删除,且即刻起不再增添新功能。请使用 <font color="#c7254e">`Db`</font> 模块代替。
## 模块简述
本模块底层通过 <font color="#c7254e">`MySQLi`</font> 驱动,进行 <font color="#c7254e">`CURD`</font> (增删改查)以及执行自定义SQL语句的操作。
## 依赖
本模块依赖于基础模块 <font color="#c7254e">`Log`</font> 。
## 模块配置
配置文件位于 <font color="#c7254e">`/Config/Mysql.php`</font> 。
* **<font color="#ff6600">`Log`</font>** <font color="#0099ff">`(Bool)`</font> <font color="#bbbbbb">`FALSE`</font> :
用以指定是否将报错信息写入日志。
<font color="#c7254e">`TRUE`</font> 代表写入日志、<font color="#c7254e">`FALSE`</font> 代表不写入日志,默认不写入日志。
* **<font color="#ff6600">`RW_Splitting`</font>** <font color="#0099ff">`(Bool)`</font> <font color="#BBBBBB">`FALSE`</font>:
用以指定读写分离是否开启,当值为 <font color="#c7254e">`TRUE`</font> 时开启,值为 <font color="#c7254e">`FALSE`</font> 时关闭。
读写分离按照 <font color="#c7254e">`一主多从`</font> 模式进行,其中 <font color="#c7254e">`default`</font> 组为写入组,其余组为读取组,读取组选择的方式是 <font color="#c7254e">`随机选取`</font> 。
如果要使用读写分离功能,至少需要一个读取组和一个写入组,此外您还需要对这些数据库进行 <font color="#c7254e">`额外的`</font> 主从同步配置。
* **<font color="#ff6600">`DbInfo`</font>** <font color="#0099ff">`(Array)`</font> <font color="#bbbbbb">`(省略)`</font> :
此配置项为一个二维数组(Array),用以指定数据库信息。在第一维数组中, <font color="#c7254e">`键`</font> 为配置组名称, <font color="#c7254e">`值`</font> 为一个数组,且该数组(即第二维数组)只能有以下五个元素:
1. 键为 <font color="#c7254e">`address`</font> ,值为数据库地址。如果非远程数据库,请使用默认值 <font color="#c7254e">`localhost`</font> ;
2. 键为 <font color="#c7254e">`username`</font> ,值为数据库用户名;
3. 键为 <font color="#c7254e">`password`</font> ,值为数据库密码;
4. 键为 <font color="#c7254e">`dbname`</font> ,值为数据库名称;
5. 键为 <font color="#c7254e">`port`</font> ,值为数据库端口号。
其中,配置组default <font color="#c7254e">`不可删除`</font> ,也不可将default改为其他名称,可以在第一维数组中增加更多的元素以配置多数据库。
## 公共参数
### 表的指定
* **<font color="#ff6600">`table(表)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`<必须>`</font>:
用以指定所操作的数据表表名。
当本参数为 <font color="#c7254e">`String`</font> 类型时,表示仅操作一个表。
当本参数为 <font color="#c7254e">`Array`</font> 类型时,数组键无需定义,每一个元素的值代表一个需要操作的表。
### WHERE子句
* **<font color="#ff6600">`field(字段)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`NULL`</font>:
用以指定查询条件中的字段。
本参数值的类型应当与参数 <font color="#c7254e">`value`</font> 保持一致,且传入本参数时, <font color="#c7254e">`value`</font> 参数也必须被传入。
当本参数为 <font color="#c7254e">`String`</font> 类型时,表示仅限定一个查询条件。
当本参数为 <font color="#c7254e">`Array`</font> 类型时,数组键无需定义,每一个元素的值代表一个限制条件,且元素与参数 <font color="#c7254e">`value`</font> 以及参数 <font color="#c7254e">`condition`</font> (如果传入)中的元素保持相互对应。
>w 如需进行多表操作,可以将传入的字段名设置为 <font color="#c7254e">`<表名>*<字段名>`</font> ,例如 <font color="#c7254e">`student*id`</font> 代表的就是 <font color="#c7254e">`student`</font> 表的 <font color="#c7254e">`id`</font> 字段。
* **<font color="#ff6600">`value(值)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`NULL`</font>:
用以指定查询条件中字段对应的值。
本参数值的类型应当与参数 <font color="#c7254e">`field`</font> 保持一致,且传入本参数时, <font color="#c7254e">`field`</font> 参数也必须被传入。
当本参数为 <font color="#c7254e">`String`</font> 类型时,表示仅限定一个查询条件。
当本参数为 <font color="#c7254e">`Array`</font> 类型时,数组键无需定义,每一个元素的值代表一个字段,且元素与参数 <font color="#c7254e">`field`</font> 以及参数 <font color="#c7254e">`condition`</font>(如果传入)中的元素保持相互对应。
* **<font color="#ff6600">`condition(条件)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`'='`</font>:
用以确定参数 <font color="#c7254e">`field`</font> 和参数 <font color="#c7254e">`value`</font> 之间的比较符以及与下一个条件之间的并列关系,以及指定各个条件之间的优先级关系。
当本参数为 <font color="#c7254e">`String`</font> 类型时,表示仅限定一个查询条件。
当本参数为 <font color="#c7254e">`Array`</font> 类型时,数组键 <font color="#c7254e">`无需定义`</font> ,值为 <font color="#c7254e">`比较符[,并列关系]`</font> 的字符串,其中比较符为字段与条件值之间的比较符( <font color="#c7254e">`=`</font> ,<font color="#c7254e">`<>`</font> ,<font color="#c7254e">`>`</font> ,<font color="#c7254e">`>=`</font> ,<font color="#c7254e">`<=`</font> ,<font color="#c7254e">`<>`</font> ,<font color="#c7254e">`LIKE`</font> ,<font color="#c7254e">`NOT LIKE`</font> ),并列关系为与下一个限制条件之间的并列关系( <font color="#c7254e">`and`</font> 或 <font color="#c7254e">`or`</font> ,未被定义时默认值为 <font color="#c7254e">`and`</font> ),并且每一个元素与参数 <font color="#c7254e">`field`</font> 和参数 <font color="#c7254e">`value`</font> 中的元素保持相互对应。
>w 如需进行多表操作,可以将传入的字段名设置为 <font color="#c7254e">`<表名>*<字段名>`</font> ,例如 <font color="#c7254e">`student*id`</font> 代表的就是 <font color="#c7254e">`student`</font> 表的 <font color="#c7254e">`id`</font> 字段。
此外,还可以在多个限定条件中,确定条件(或条件组合)之间的优先级。
即在最终的SQL语句中,框架会根据传入的优先级参数的值,使用括号“()”对查询条件进行优先级的指定,例如
```sql
... where `id` = '1' and ( `level` = 'a' or `class` > '3' ) ...
```
的查询语句。
如需使用此特性,则参数 <font color="#c7254e">`condition`</font> 必须为数组,且数组的每一个元素的值将由 <font color="#c7254e">`String`</font> 类型改变为 <font color="#c7254e">`Array`</font> 类型,且包含两个元素,且数组的键无需定义:
第一个元素的值为 <font color="#c7254e">`比较符[,并列关系]`</font> 的字符串,该字符串的定义方式不再赘述。
第二个元素的值为 <font color="#c7254e">`前置括号[,后置括号]`</font> 的字符串。其中前置括号为添加在该条件前的左括号,可以为0个或多个 <font color="#c7254e">`(`</font> ;后置括号为添加在该条件后、下一个并列关系符前的右括号,可以为0个或多个 <font color="#c7254e">`)`</font> 。
当仅需要添加右括号时,字符串应当定义为 <font color="#c7254e">`,后置括号`</font> ,即起始字符为一个英文逗号。
若要实现上面的SQL语句,那么应该按下面的方式定义这三个参数:
```php
$Field=array('id', 'level', 'class');
$Value=array('1', 'a', '3');
$Condition=array(
'=,and',
array(
'=,or',
'('
),
array(
'>',
',)'
)
);
```
### order by子句
* **<font color="#ff6600">`order(顺序)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`默认值见方法参数`</font>:
用以指定对结果排序时所依据的字段。
当本参数为 <font color="#c7254e">`String`</font> 类型时,表示仅限定一个排序字段。
当本参数为 <font color="#c7254e">`Array`</font> 类型时,数组键无需定义,每一个元素的值代表一个排序所依据的字段,且元素与参数 <font color="#c7254e">`desc`</font> (如果传入)中的元素保持相互对应。
>w 如需进行多表操作,可以将传入的字段名设置为 <font color="#c7254e">`<表名>*<字段名>`</font> ,例如 <font color="#c7254e">`student*id`</font> 代表的就是 <font color="#c7254e">`student`</font> 表的 <font color="#c7254e">`id`</font> 字段。
* **<font color="#ff6600">`desc(降序)`</font>** <font color="#0099ff">`(Bool | Array)`</font> <font color="#BBBBBB">`FALSE`</font>:
用以指定是否使用倒序的排序方式。
当本参数为 <font color="#c7254e">`Bool`</font> 类型时,则指定所有字段的排序方式,<font color="#c7254e">`TRUE`</font> 代表倒序、<font color="#c7254e">`FALSE`</font> 代表正序,默认倒序。
当本参数为 <font color="#c7254e">`Array`</font> 类型时,数组键无需定义,每一个元素的值为一个字段排序所依据的方式,且元素与参数 <font color="#c7254e">`order`</font> 中的元素保持相互对应。
例如,将结果按照字段 <font color="#c7254e">`id`</font> 正序排序,并且按照 <font color="#c7254e">`money`</font> 倒序排序:
```php
$Order=array('id','money');
$Desc=array(TRUE,FALSE);
```
>w 如需进行多表操作,可以将传入的字段名设置为 <font color="#c7254e">`<表名>*<字段名>`</font> ,例如 <font color="#c7254e">`student*id`</font> 代表的就是 <font color="#c7254e">`student`</font> 表的 <font color="#c7254e">`id`</font> 字段。
### 其它子句
* **<font color="#ff6600">`limit(限制)`</font>** <font color="#0099ff">`(Array)`</font> <font color="#BBBBBB">`NULL`</font>:
用以从 <font color="#c7254e">`位置偏移量`</font> 为起始行取得 <font color="#c7254e">`指定行数`</font> 的记录。
数组的键无需定义,当数组仅存在一个元素时,此元素定义 <font color="#c7254e">`行数`</font> ,此时位置偏移量 <font color="#c7254e">`默认为0`</font> ;当数组存在两个元素时,第一个元素定义 <font color="#c7254e">`位置偏移量`</font> ,第二个元素定义 <font color="#c7254e">`行数`</font> 。
例如,从结果中的第3行开始取15行:
```php
$Limit=array(2,15);
//偏移量从0开始计算。
```
* **<font color="#ff6600">`index(索引)`</font>** <font color="#0099ff">`(Int)`</font> <font color="#BBBBBB">`NULL`</font>:
用以指定执行操作时使用的索引。
* **<font color="#ff6600">`sql(sql)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`NULL`</font>:
附加执行自定义的SQL语句。
* **<font color="#ff6600">`group_by(分组)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`NULL`</font>:
用以指定对结果分组时所依据的字段。
当本参数为 <font color="#c7254e">`String`</font> 类型时,表示仅指定一个分组依据的字段。
当本参数为 <font color="#c7254e">`Array`</font> 类型时,数组键无需定义,每一个元素的值代表一个排序所依据的字段。
>w 如需进行多表操作,可以将传入的字段名设置为 <font color="#c7254e">`<表名>*<字段名>`</font> ,例如 <font color="#c7254e">`student*id`</font> 代表的就是 <font color="#c7254e">`student`</font> 表的 <font color="#c7254e">`id`</font> 字段。
* **<font color="#ff6600">`field_limit(字段限制)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`*`</font>:
用以指定取回结果的字段范围。
当本参数为 <font color="#c7254e">`String`</font> 类型时,表示仅指定一个取回的字段。
当本参数为 <font color="#c7254e">`Array`</font> 类型时,数组键无需定义,每一个元素的值代表一个需要取回的字段。
<font color="#c7254e">`*`</font> 代表取回所有字段。
>w 如需进行多表操作,可以将传入的字段名设置为 <font color="#c7254e">`<表名>*<字段名>`</font> ,例如 <font color="#c7254e">`student*id`</font> 代表的就是 <font color="#c7254e">`student`</font> 表的 <font color="#c7254e">`id`</font> 字段。
* **<font color="#ff6600">`data(数据)`</font>** <font color="#0099ff">`(Array)`</font> <font color="#BBBBBB">`默认值见方法参数`</font>:
用以指定需要插入或更新的数据。
本参数中 <font color="#c7254e">`键`</font> 为字段名, <font color="#c7254e">`值`</font> 为字段名所对应的值。
>w 如需进行多表操作,可以将传入的字段名设置为 <font color="#c7254e">`<表名>*<字段名>`</font> ,例如 <font color="#c7254e">`student*id`</font> 代表的就是 <font color="#c7254e">`student`</font> 表的 <font color="#c7254e">`id`</font> 字段。
## :: Choose()方法
### 语法
**<font color="#0099ff"><font color="#ff6600">Mysql</font> :: <font color="#ff6600">Choose</font> ( <kbd>传参数组</kbd> )</font>**
### 说明
在预配置的多个数据库中选择一个数据库。
此方法 <font color="#c7254e">`支持`</font> 中文参数名。
### 参数
* **<font color="#ff6600">`db(数据库)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`<必须>`</font>:
所查询数据库的名称。
### 返回
无。
### 示例
请查阅 <font color="#c7254e">`Db`</font> 模块说明文档中的同名方法。
## :: Select()方法
### 语法
**<font color="#0099ff"><font color="#ff6600">Mysql</font> :: <font color="#ff6600">Select</font> ( <kbd>传参数组</kbd> )</font>**
### 说明
查询单条数据表记录。
本方法相比于 <font color="#c7254e">`SelectMore`</font> 方法,更适合于例如查询用户信息这样单一的数据,性能更优异。
>d 务必注意对来自于用户提交的数据进行安全过滤(使用Receive模块中的方法),如果最终执行的语句出现额外的 <font color="#c7254e">`'`</font> 等SQL语法符号时,框架将报错。
此方法 <font color="#c7254e">`支持`</font> 中文参数名。
### 参数
* **<font color="#ff6600">`table(表)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`<必须>`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`field(字段)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`value(值)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`condition(条件)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`'='`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`order(顺序)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`desc(降序)`</font>** <font color="#0099ff">`(Bool | Array)`</font> <font color="#BBBBBB">`FALSE`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`index(索引)`</font>** <font color="#0099ff">`(Int)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`field_limit(字段限制)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`*`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`sql(sql)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
### 返回
<font color="#0099ff">`(Array)`</font> 类型。
查询到记录时,返回值为一个数组,记录的每一个字段为一个 <font color="#c7254e">`键`</font> ,每一个记录值为一个数组的 <font color="#c7254e">`值`</font> ,且数组中键值的对应关系与记录中字段和记录值的对应关系相同。
当查询到的记录为空时,返回值为一个 <font color="#c7254e">`空数组`</font> 。
## :: SelectMore()方法
### 语法
**<font color="#0099ff"><font color="#ff6600">Mysql</font> :: <font color="#ff6600">SelectMore</font> ( <kbd>传参数组</kbd> )</font>**
### 说明
查询多条数据表记录。
>d 务必注意对来自于用户提交的数据进行安全过滤(使用Receive模块中的方法),如果最终执行的语句出现额外的 <font color="#c7254e">`'`</font> 等SQL语法符号时,框架将报错。
此方法 <font color="#c7254e">`支持`</font> 中文参数名。
### 参数
* **<font color="#ff6600">`table(表)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`<必须>`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`field(字段)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`value(值)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`condition(条件)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`'='`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`order(顺序)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`desc(降序)`</font>** <font color="#0099ff">`(Bool | Array)`</font> <font color="#BBBBBB">`FALSE`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`limit(限制)`</font>** <font color="#0099ff">`(Array)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`index(索引)`</font>** <font color="#0099ff">`(Int)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`field_limit(字段限制)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`*`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`group_by(分组)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`sql(sql)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
### 返回
<font color="#0099ff">`(Array)`</font> 类型。
查询到记录时,返回值为 <font color="#c7254e">`二维数组`</font> ,在第一维的数组中,键为从 <font color="#c7254e">`0`</font> 开始的自增键,值为一行记录的集合的一维数组;在第二维数组中, <font color="#c7254e">`键`</font> 为字段名, <font color="#c7254e">`值`</font> 为该条记录中字段所对应的记录值。
当查询到的记录为空时,返回值为一个 <font color="#c7254e">`空数组`</font> 。
## :: Total()方法
### 语法
**<font color="#0099ff"><font color="#ff6600">Mysql</font> :: <font color="#ff6600">Total</font> ( <kbd>传参数组</kbd> )</font>**
### 说明
统计符合条件的记录数量。
>d 务必注意对来自于用户提交的数据进行安全过滤(使用Receive模块中的方法),如果最终执行的语句出现额外的 <font color="#c7254e">`'`</font> 等SQL语法符号时,框架将报错。
此方法 <font color="#c7254e">`支持`</font> 中文参数名。
### 参数
* **<font color="#ff6600">`table(表)`</font>** <font color="#0099ff">`(Int)`</font> <font color="#BBBBBB">`<必须>`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`field(字段)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`value(值)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`condition(条件)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`'='`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`order(顺序)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`'Total'`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`desc(降序)`</font>** <font color="#0099ff">`(Bool | Array)`</font> <font color="#BBBBBB">`FALSE`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`limit(限制)`</font>** <font color="#0099ff">`(Array)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`index(索引)`</font>** <font color="#0099ff">`(Int)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`group_by(分组)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`sql(sql)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
### 返回
<font color="#0099ff">`(Array)`</font> 类型。
当未指定 <font color="#c7254e">`group_by`</font> 参数时,将直接返回符合条件的记录总数;否则将返回依据 <font color="#c7254e">`group_by`</font> 参数分组而形成的结果集。
## :: Sum()方法
### 语法
**<font color="#0099ff"><font color="#ff6600">Mysql</font> :: <font color="#ff6600">Sum</font> ( <kbd>传参数组</kbd> )</font>**
### 说明
对符合条件的指定列的记录值进行累加,并将结果放在一行中。
>d 务必注意对来自于用户提交的数据进行安全过滤(使用Receive模块中的方法),如果最终执行的语句出现额外的 <font color="#c7254e">`'`</font> 等SQL语法符号时,框架将报错。
此方法 <font color="#c7254e">`支持`</font> 中文参数名。
### 参数
* **<font color="#ff6600">`table(表)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`<必须>`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`field(字段)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`value(值)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`condition(条件)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`'='`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`order(顺序)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`desc(降序)`</font>** <font color="#0099ff">`(Bool | Array)`</font> <font color="#BBBBBB">`FALSE`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`limit(限制)`</font>** <font color="#0099ff">`(Array)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`index(索引)`</font>** <font color="#0099ff">`(Int)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`sum(合计)`</font>** <font color="#0099ff">`(Array)`</font> <font color="#BBBBBB">`<必须>`</font>:
用以指定对结果分组时所依据的字段。
每一个元素的键代表一个需要累加的字段,值代表该字段在结果中的字段别名。
>w 如需进行多表操作,可以将传入的字段名设置为 <font color="#c7254e">`<表名>*<字段名>`</font> ,例如 <font color="#c7254e">`student*id`</font> 代表的就是 <font color="#c7254e">`student`</font> 表的 <font color="#c7254e">`id`</font> 字段。
* **<font color="#ff6600">`sql(sql)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
### 返回
<font color="#0099ff">`(Array)`</font> 类型。
将返回结果集。
## :: Insert()方法
### 语法
**<font color="#0099ff"><font color="#ff6600">Mysql</font> :: <font color="#ff6600">Insert</font> ( <kbd>传参数组</kbd> )</font>**
### 说明
插入数据,并返回新记录的主键。
>d 务必注意对来自于用户提交的数据进行安全过滤(使用Receive模块中的方法),如果最终执行的语句出现额外的 <font color="#c7254e">`'`</font> 等SQL语法符号时,框架将报错。
此方法 <font color="#c7254e">`支持`</font> 中文参数名。
### 参数
* **<font color="#ff6600">`table(表)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`<必须>`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`data(数据)`</font>** <font color="#0099ff">`(Array)`</font> <font color="#BBBBBB">`<必须>`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`sql(sql)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
### 返回
<font color="#0099ff">`(Int)`</font> 类型。
值为插入成功后该行记录的主键。
## :: Delete()方法
### 语法
**<font color="#0099ff"><font color="#ff6600">Mysql</font> :: <font color="#ff6600">Delete</font> ( <kbd>传参数组</kbd> )</font>**
### 说明
删除符合条件的记录。
>d 务必注意对来自于用户提交的数据进行安全过滤(使用Receive模块中的方法),如果最终执行的语句出现额外的 <font color="#c7254e">`'`</font> 等SQL语法符号时,框架将报错。
此方法 <font color="#c7254e">`支持`</font> 中文参数名。
### 参数
* **<font color="#ff6600">`table(表)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`<必须>`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`field(字段)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`value(值)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`condition(条件)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`'='`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`order(顺序)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`desc(降序)`</font>** <font color="#0099ff">`(Bool | Array)`</font> <font color="#BBBBBB">`FALSE`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`limit(限制)`</font>** <font color="#0099ff">`(Array)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`index(索引)`</font>** <font color="#0099ff">`(Int)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`sql(sql)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
### 返回
无。
## :: Update()方法
### 语法
**<font color="#0099ff"><font color="#ff6600">Mysql</font> :: <font color="#ff6600">Update</font> ( <kbd>传参数组</kbd> )</font>**
### 说明
更新符合条件的记录。
>d 务必注意对来自于用户提交的数据进行安全过滤(使用Receive模块中的方法),如果最终执行的语句出现额外的 <font color="#c7254e">`'`</font> 等SQL语法符号时,框架将报错。
此方法 <font color="#c7254e">`支持`</font> 中文参数名。
### 参数
* **<font color="#ff6600">`table(表)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`<必须>`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`field(字段)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`value(值)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`condition(条件)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`'='`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`order(顺序)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`desc(降序)`</font>** <font color="#0099ff">`(Bool | Array)`</font> <font color="#BBBBBB">`FALSE`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`limit(限制)`</font>** <font color="#0099ff">`(Array)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`index(索引)`</font>** <font color="#0099ff">`(Int)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`data(数据)`</font>** <font color="#0099ff">`(Array)`</font> <font color="#BBBBBB">`默认值见方法参数`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`auto_operate(自动操作)`</font>** <font color="#0099ff">`(String | Array)`</font> <font color="#BBBBBB">`NULL`</font>:
用以指定自动更新的方式。
例如 <font color="#c7254e">`+1`</font> 则会使指定的字段值自动+1,详见MySQL官方手册。
键无需定义,值为表达式,并且每一个元素与参数 <font color="#c7254e">`data`</font> 中的元素保持 <font color="#c7254e">`相互对应`</font> 。
* **<font color="#ff6600">`sql(sql)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
### 返回
无。
## :: Other()方法
### 语法
**<font color="#0099ff"><font color="#ff6600">Mysql</font> :: <font color="#ff6600">Other</font> ( <kbd>传参数组</kbd> )</font>**
### 说明
执行自定义的SQL语句。
>d 务必注意对来自于用户提交的数据进行安全过滤(使用Receive模块中的方法),如果最终执行的语句出现额外的 <font color="#c7254e">`'`</font> 等SQL语法符号时,框架将报错。
此方法 <font color="#c7254e">`支持`</font> 中文参数名。
### 参数
* **<font color="#ff6600">`sql(sql)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`NULL`</font>:
详见本模块 <font color="#c7254e">`公共参数`</font> 部分的说明。
* **<font color="#ff6600">`fetch_result(取回结果)`</font>** <font color="#0099ff">`(Bool)`</font> <font color="#BBBBBB">`FALSE`</font>:
用以指定是否取回结果集。当值为 <font color="#c7254e">`FALSE`</font> 时,将返回一个 <font color="#c7254e">`Mysqli->query`</font> 对象;当值为 <font color="#c7254e">`TRUE`</font> 时,将以 <font color="#c7254e">`MYSQLI_ASSOC`</font> 方式取回数据集,返回一个数组。
### 返回
<font color="#0099ff">`(Object | Array)`</font> 类型。
<font color="#c7254e">`Mysqli->query`</font> 对象或二维数组或不含任何元素的空数组。
## :: BackUp()方法
### 语法
**<font color="#0099ff"><font color="#ff6600">Mysql</font> :: <font color="#ff6600">BackUp</font> ( <kbd>传参数组</kbd> )</font>**
### 说明
对数据库进行备份,并将备份文件存储至指定路径。
此方法 <font color="#c7254e">`支持`</font> 中文参数名。
### 参数
* **<font color="#ff6600">`path(路径)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`<必须>`</font>:
指定备份的文件存储到何处,值为相对于 <font color="#c7254e">`应用根目录`</font>(即Core、Source文件夹所在的目录,通常是站点根目录)的目录路径,以 <font color="#c7254e">`/`</font> 开始。
### 返回
<font color="#0099ff">`(String)`</font> 类型。
返回的值为备份后的SQL文件的文件路径,您可以依据此路径对备份后的文件进行其它操作。
>d 为了服务器的安全,请尽可能的避免数据库备份文件 <font color="#c7254e">`长时间`</font> 保存在服务器上。