数据集

更新时间:2023-05-07 00:11

数据集是一个存放数据资料的仓库,开发者从此可以抛弃数据库,直接利用数据集进行数据的存储。

数据集返回码

    const Ret_Success = 0;//成功
    const Ret_NotInit = -3;//未初始化,可当做无数据处理,有写入操作时会自动进行初始化
    const Ret_Error = -4;//数据层错误

接口列表

设置数据集数据

Lib\Data::Set($name, $data, $condition = array())

添加数据集数据,或者修改满足指定条件的数据

请求参数

参数类型含义
$namestring数据集的名称,由英文字母及数字组成,最大长度 20 字节,大小写字母不限制
$dataarray数据内容
$conditionarray可选,搜索条件,包含此参数时将修改满足指定条件的数据,否则是新增数据

$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岁
);
连接符含义
=相等,可省略
+、-加减运算
、&、^、&~位运算
>、<、<>、<=、>=比较
likelike 搜索,请自行包含"%"符号
in、notinin 集合,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 连接

返回参数

参数类型含义
retint见“数据集返回码”
_idint[Ret_Success] 不包含 $condition 时,返回添加数据的内部 id

删除数据集数据

Lib\Data::UnSet($name, $condition)

删除满足指定条件的数据

请求参数

参数类型含义
$namestring数据集的名称,由英文字母及数字组成,最大长度 20 字节,大小写字母不限制
$conditionarray搜索条件,见 Set 中的详解

返回参数

返回 “数据集返回码” 对应的数值


设置或者返回数据集的属性

Lib\Data::Attribute($name, $data = array())

请求参数

参数类型含义
$namestring数据集的名称,由英文字母及数字组成,最大长度 20 字节,大小写字母不限制
$dataarray包含此参数时将进行设置操作,否则返回当前的属性。格式见“属性列表”

返回参数

参数类型含义
retint见“数据集返回码”
valuearray返回的属性,格式见“属性列表”

属性列表

属性参数为一个数组,其中一维数组的 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())

请求参数

参数类型含义
$namestring数据集的名称,由英文字母及数字组成,最大长度 20 字节,大小写字母不限制
$conditionarray搜索条件,见 Set 中的详解
$paramsarray额外参数

$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'),
)

返回参数

参数类型含义
retint见“数据集返回码”
listarray返回的数据

获取指定的单行数据

Lib\Data::GetRow($name, $id)

请求参数

参数类型含义
$namestring数据集的名称,由英文字母及数字组成,最大长度 20 字节,大小写字母不限制
$idint数据集的内部id,“_id” 字段的内容

返回参数

参数类型含义
retint见“数据集返回码”
rowarray返回的数据

按照条件获取数据条目数

Lib\Data::GetCount($name, $condition = array())

请求参数

参数类型含义
$namestring数据集的名称,由英文字母及数字组成,最大长度 20 字节,大小写字母不限制
$conditionarray搜索条件,见 Set 中的详解

返回参数

参数类型含义
retint见“数据集返回码”
countarray返回的条目数

按照 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())
参数类型含义
$namestring数据集的名称,由英文字母及数字组成,最大长度 20 字节,大小写字母不限制
$conditionsstringSQL 语句中 Where 的内容,变量用 ? 代替
$paramsarray$conditions 中 "?" 值的数组
$pageOptionsarray分页选项,包含 start、perPage 2 个 key
$fieldsarray要返回的字段内容,默认为全部
$orderarray排序方式,key 为字段, value 为 ASC(正序)、DESC(倒序)

返回参数

参数类型含义
retint见“数据集返回码”
listarray返回的数据

范例

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)

此方法请谨慎使用,按照使用场景,通常不建议用于正式的生产环境。

请求参数

参数类型含义
$namestring数据集的名称,由英文字母及数字组成,最大长度 20 字节,大小写字母不限制
$cmdStringstring命令内容

目前包含如下命令:

delete

此命令将直接删除一个数据表,删除的数据表无法恢复,请谨慎操作

Lib\Data::Cmd('user', 'delete');

truncate

此命令将清空一个数据表,删除的数据表无法恢复,但是重新执行 Set 方法时将会重新写入数据。

Lib\Data::Cmd('user', 'truncate');

drop

此命令将删除一个字段,删除的字段数据表无法恢复,但是重新执行 Set 方法时如果包含同名字段,将会重新创建该字段。

Lib\Data::Cmd('user', 'drop field1');

返回参数

返回 “数据集返回码” 对应的数值