数据集
更新时间:2023-05-07 00:11
数据集是一个存放数据资料的仓库,开发者从此可以抛弃数据库,直接利用数据集进行数据的存储。
数据集返回码
const Ret_Success = 0;//成功
const Ret_NotInit = -3;//未初始化,可当做无数据处理,有写入操作时会自动进行初始化
const Ret_Error = -4;//数据层错误
接口列表
设置数据集数据
Lib\Data::Set($name, $data, $condition = array())
添加数据集数据,或者修改满足指定条件的数据
请求参数
参数 | 类型 | 含义 |
---|---|---|
$name | string | 数据集的名称,由英文字母及数字组成,最大长度 20 字节,大小写字母不限制 |
$data | array | 数据内容 |
$condition | array | 可选,搜索条件,包含此参数时将修改满足指定条件的数据,否则是新增数据 |
$data
$data 为数据的内容,格式为包含 key 的数组结构,key 为字段 value 为值,例如:
$data = array(
'name' => '小王',
'age' => 8,
'data' => array(
'grade' => 2,
'class' => 4,
),
);
如果你希望参与搜索或排序,必须将字段按照如下命名的规则进行命名
字段的命名规则
如果你的字段所对应的值参与搜索或排序,请用指定字母前缀并驼峰规则命名 key,例如 iOrderId、sName,具体前缀规则见下表:
字母前缀 | 含义 | 对应 Mysql 的字段类型 |
---|---|---|
i | 整型 | INT |
n | 短整型 | SMALLINT |
l | 长整型 | BIGINT |
f | 单精度浮点 | FLOAT |
d | 双精度浮点 | DOUBLE |
w | 无符号整型 | INT UNSIGNED |
dw | 无符号长整型 | BIGINT UNSIGNED |
s | 字串 | VARCHAR(255) |
t | 文本 | TEXT |
bt | 大文本 | MEDIUMTEXT |
如果您的字段 key 不用于搜索或排序,可以不按照以上规则命名。
如果某字段是独立的唯一索引,请在字母前缀前再添加字母“u”,如“uwUniqueId”。
$condition
$condition 为搜索条件,不包含 $condition 时将进行添加操作,否则进行数据的更新操作。添加操作时返回添加数据的自增索引 “_id”
字段。
$condition 由数组组成,例如:
$condition = array(
'_id' => 28,
);
或者
$condition = array(
'sName' => '二哥',
);
查询的连接符
你可以通过以下方式携带不同的连接符进行不同搜索,例如:
$condition = array(
'iAge >' => 10, // 大于10岁
'iAge <' => 20, // 小于20岁
);
连接符 | 含义 | |
---|---|---|
= | 相等,可省略 | |
+、- | 加减运算 | |
、&、^、&~ | 位运算 | |
>、<、<>、<=、>= | 比较 | |
like | like 搜索,请自行包含"%"符号 | |
in、notin | in 集合,value 必须是数组 |
如果要包含 OR 或者括号等其他条件可用自然序列的(不包含 key)数组元素,例如:
$condition = array(
'iAge >' => 10, // 大于10岁
'OR',
'iAge <' => 20, // 小于20岁
);
$condition = array(
'(',
'iAge >' => 10, // 大于10岁
'OR',
'iAge <' => 20, // 小于20岁
')',
'AND',
'sName like' => '王%',
);
2 个包含 key 的数组元素之间默认用 AND 连接
返回参数
参数 | 类型 | 含义 |
---|---|---|
ret | int | 见“数据集返回码” |
_id | int | [Ret_Success] 不包含 $condition 时,返回添加数据的内部 id |
删除数据集数据
Lib\Data::UnSet($name, $condition)
删除满足指定条件的数据
请求参数
参数 | 类型 | 含义 |
---|---|---|
$name | string | 数据集的名称,由英文字母及数字组成,最大长度 20 字节,大小写字母不限制 |
$condition | array | 搜索条件,见 Set 中的详解 |
返回参数
返回 “数据集返回码” 对应的数值
设置或者返回数据集的属性
Lib\Data::Attribute($name, $data = array())
请求参数
参数 | 类型 | 含义 |
---|---|---|
$name | string | 数据集的名称,由英文字母及数字组成,最大长度 20 字节,大小写字母不限制 |
$data | array | 包含此参数时将进行设置操作,否则返回当前的属性。格式见“属性列表” |
返回参数
参数 | 类型 | 含义 |
---|---|---|
ret | int | 见“数据集返回码” |
value | array | 返回的属性,格式见“属性列表” |
属性列表
属性参数为一个数组,其中一维数组的 key 为属性名称,value 为属性内容,例如:
$attrib = array(
'index' => array(
'age' => array('dAge', 'wTime')
),
)
index 为属性名称,其值为属性的内容。目前支持的属性如下:
index
index 属性用于给数据集添加额外的多字段索引。
属性的内容为 array 类型,因此可添加多个索引。数组的 key 为索引名称,数值的 value 为字段 key 列表。
请添加按照指定命名规则命名的字段,且必须添加2个或2个以上的字段,因为按照指定命名规则命名的字段本身已经添加了独立的索引。
unique
unique 属性用于给数据集添加额外的多字段唯一索引。单字段唯一索引按照之前讲述的字段命名规则用字母“u”开头。
属性的内容为 array 类型,因此可添加多个唯一索引。数组的 key 为索引名称,数值的 value 为字段 key 列表。
请添加按照指定命名规则命名的字段,且必须添加2个或2个以上的字段。
按照条件获取数据列表
Lib\Data::GetList($name, $condition = array(), $params = array())
请求参数
参数 | 类型 | 含义 |
---|---|---|
$name | string | 数据集的名称,由英文字母及数字组成,最大长度 20 字节,大小写字母不限制 |
$condition | array | 搜索条件,见 Set 中的详解 |
$params | array | 额外参数 |
$params 额外参数
额外参数为一个数组,其中一维数组的 key 为参数名称,value 为参数内容,例如:
$params = array(
'order' => array('_id' => 'DESC'),
)
order 为参数名称,其值为参数的内容。目前支持的参数如下:
order
设置列表返回的顺序。
参数的内容为 array 类型,因此可添加多个字段进行排序。数组的 key 为字段名称,数值的 value 为排序方式“DESC”、“ASC” 。
字段名必须是按照指定命名规则命名的字段。
limit
设置列表返回的数据条目数,必须传 2 个值,按照以下格式设置
$params = array(
'limit' => array($start, $number),
)
field
设置返回哪些字段,把包含字段名的数组放入参数的内容中,例如:
$params = array(
'field' => array('dAge', 'wTime'),
)
返回参数
参数 | 类型 | 含义 |
---|---|---|
ret | int | 见“数据集返回码” |
list | array | 返回的数据 |
获取指定的单行数据
Lib\Data::GetRow($name, $id)
请求参数
参数 | 类型 | 含义 |
---|---|---|
$name | string | 数据集的名称,由英文字母及数字组成,最大长度 20 字节,大小写字母不限制 |
$id | int | 数据集的内部id,“_id” 字段的内容 |
返回参数
参数 | 类型 | 含义 |
---|---|---|
ret | int | 见“数据集返回码” |
row | array | 返回的数据 |
按照条件获取数据条目数
Lib\Data::GetCount($name, $condition = array())
请求参数
参数 | 类型 | 含义 |
---|---|---|
$name | string | 数据集的名称,由英文字母及数字组成,最大长度 20 字节,大小写字母不限制 |
$condition | array | 搜索条件,见 Set 中的详解 |
返回参数
参数 | 类型 | 含义 |
---|---|---|
ret | int | 见“数据集返回码” |
count | array | 返回的条目数 |
按照 SQL 的 Where 格式获取数据
(类似 DAO_MySql::findAll)
Lib\Data::GetListByWhere(string $name, string $conditions = null, array $params = array(), array $pageOptions = array(), array $fields = array(), array $order = array())
参数 | 类型 | 含义 |
---|---|---|
$name | string | 数据集的名称,由英文字母及数字组成,最大长度 20 字节,大小写字母不限制 |
$conditions | string | SQL 语句中 Where 的内容,变量用 ? 代替 |
$params | array | $conditions 中 "?" 值的数组 |
$pageOptions | array | 分页选项,包含 start、perPage 2 个 key |
$fields | array | 要返回的字段内容,默认为全部 |
$order | array | 排序方式,key 为字段, value 为 ASC(正序)、DESC(倒序) |
返回参数
参数 | 类型 | 含义 |
---|---|---|
ret | int | 见“数据集返回码” |
list | array | 返回的数据 |
范例
Lib\Data::GetListByWhere(
'testb', // $name
"wCreateTime> ?", // $conditions
array($startTime), // $params
['start' => 0, 'perPage' => 2], // $pageOptions
['a1', 'dwMemberUUID', 'wCreateTime'], // $fields
['wCreateTime' => 'DESC'] // $order
);
数据集命令
Lib\Data::Cmd($name, $cmdString)
此方法请谨慎使用,按照使用场景,通常不建议用于正式的生产环境。
请求参数
参数 | 类型 | 含义 |
---|---|---|
$name | string | 数据集的名称,由英文字母及数字组成,最大长度 20 字节,大小写字母不限制 |
$cmdString | string | 命令内容 |
目前包含如下命令:
delete
此命令将直接删除一个数据表,删除的数据表无法恢复,请谨慎操作
Lib\Data::Cmd('user', 'delete');
truncate
此命令将清空一个数据表,删除的数据表无法恢复,但是重新执行 Set 方法时将会重新写入数据。
Lib\Data::Cmd('user', 'truncate');
drop
此命令将删除一个字段,删除的字段数据表无法恢复,但是重新执行 Set 方法时如果包含同名字段,将会重新创建该字段。
Lib\Data::Cmd('user', 'drop field1');
返回参数
返回 “数据集返回码” 对应的数值