SuperAPI AI 工具集

oxmysql

编程与开发

查看项目

更新于 10-15 21:51

技能介绍

oxmysql 为 FiveM 服务端资源提供 MySQL/MariaDB 数据库访问,是 mysql-async 与 ghmattimysql 的替代方案。仅限服务端使用,需在 fxmanifest.lua 中于其他服务端脚本之前加入 server_script '@oxmysql/lib/MySQL.lua',并确保 oxmysql 先于资源启动。

主要能力:MySQL.query 返回多行数组;MySQL.single 返回单行或 nil;MySQL.scalar 返回单个值(如 COUNT)或 nil;MySQL.insert 返回插入 id;MySQL.update 返回受影响行数;MySQL.prepare 用于热点路径的重复语句;MySQL.transaction 将多条语句原子执行,任一失败即回滚并返回成功布尔值;MySQL.rawExecute 返回未归一化的原始结果。每个函数均带 .await 变体以便让出协程。

用法要点:函数签名均为 (query, params, callback),优先使用 .await 避免回调嵌套。占位符仅用位置式 ? 并传入值数组,prepare 也只接受 ?(列名用 ??);@named 占位符已弃用。禁止将用户输入拼接进 SQL,所有值必须通过占位符传入。使用 single、scalar 时需先判断 nil 再使用。多语句写入应包在 transaction 中。仅当 query/prepare 的归一化结果形状不足时才用 rawExecute。兼容性上优先 MariaDB 而非 MySQL 8。

限制:不提供 MySQL.Sync.* 与 MySQL.Async.*(mysql-async 兼容层不可用),需改用上述函数。输出应为使用 MySQL.<fn>.await、位置式占位符的服务端 Lua 或 JS,避免 mysql-async 语法。上游文档:https://overextended.dev/oxmysql。