跳到主要内容

db_query

注意

这个$函数以小写字母开头。

描述

该函数用于在已建立的 SQLite 数据库连接上执行 SQL 查询。

参数名描述
DB:db数据库连接句柄
query[]要执行的 SQL 查询语句

返回值

  • 执行成功返回结果集句柄索引(从 1 开始)
  • 执行失败返回 0

示例

// 实体存储模块

EntityStorage_SpawnAll(DB:connectionHandle)
{
// 从"entities"表中查询所有记录
new DBResult:db_result_set = db_query(connectionHandle, "SELECT * FROM `entities`");

// 验证结果集有效性
if (db_result_set)
{
// 执行数据操作...

// 释放结果集内存
db_free_result(db_result_set);
}
}
// 游戏模式主文件

#include <entity_storage>

static DB:gDBConnectionHandle;

// ...

public OnGameModeInit()
{
// ...

// 建立数据库连接
gDBConnectionHandle = db_open("example.db");

if (gDBConnectionHandle)
{
print("成功连接数据库 \"example.db\"");
EntityStorage_SpawnAll(gDBConnectionHandle); // 加载实体数据
}
else
{
print("无法连接数据库 \"example.db\"");
}

return 1;
}

public OnGameModeExit()
{
// 关闭数据库连接
if (db_close(gDBConnectionHandle))
{
gDBConnectionHandle = DB:0; // 重置句柄防止重复关闭
}
return 1;
}

注意事项

危险

必须使用db_free_result释放查询结果,否则会导致内存泄漏!

相关功能