Run
SQL.PersistentDB(QueryString)
函数功能
执行一条 MySQL SQL 语句。
频繁操作优化后快约 6–10 倍(本机,5 千次)
操作参数
| 参数名 | 是否必须 | 类型 | 说明 |
|---|---|---|---|
QueryString |
是 | string | 合法的 SQL 语句 |
返回值
| SQL 类型 | 返回值 |
|---|---|
| SELECT(有数据) | table – 包含查询结果,结构见下方说明 |
| SELECT(无数据) | nil – 并输出错误信息“查无结果。” |
| SELECT(执行出错) | nil – 并输出 MySQL 错误信息 |
| INSERT / UPDATE / DELETE(成功) | 0 |
| INSERT / UPDATE / DELETE(失败) | number – MySQL 错误码,同时输出错误信息(可通过 LuaErrMsg 获取) |
SELECT 结果 table 结构
| 字段 | 类型 | 说明 |
|---|---|---|
| row | number | 查询结果的行数 |
| field | number | 查询结果的列数 |
| “[行号_列号]” | string | 具体单元格的值,行列号均从 0 开始计数 |
例如:
resset["0_1"]表示第 1 行第 2 列的值。
操作示例
示例 1:更新数据(INSERT / UPDATE / DELETE)
local query = "UPDATE tbl_user SET EnableFlg = 1 WHERE cdkey = '111111'"
local resset = SQL.Run(query)
print(resset) -- 成功输出 0操作实例2(查询数据):
local query = "SELECT * from tbl_character WHERE cdkey='111111'";
local resset = SQL.Run(query);
if resset == nil or resset.row <= 0 then
print("没有找到对应数据");
return;
end
print(resset.row);--查询到几行
print(resset.field);--查询到几列
print(resset["0_1"]);--输出查询结果第一行第二列的值
print(resset["1_2"]);--输出查询结果第二行第三列的值
作者:105493660 创建时间:2018-01-10 19:20
最后编辑:105493660 更新时间:2026-05-09 17:37
最后编辑:105493660 更新时间:2026-05-09 17:37