---
title: "db_close | open.mp"
description: "关闭通过`db_open`打开的SQLite数据库连接。"
canonical: https://omp.itsneufox.com/zh-CN/docs/scripting/functions/db_close
language: zh-CN
---

# db\_close

## 描述

关闭通过[db\_open](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/db_open)建立的 SQLite 数据库连接。

| 参数 | 说明 |
| --- | --- |
| DB:db | 要关闭的数据库连接句柄（由[db\_open](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/db_open)返回） |

## 返回值

**true** - 函数执行成功

**false** - 函数执行失败（可能由于数据库连接句柄无效）

## 示例

```c
static DB:gDBConnectionHandle;

// ...

public OnGameModeInit()
{
    // ...

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

    // 检测数据库连接状态
    if (gDBConnectionHandle)
    {
        // 成功建立连接
        print("成功连接数据库 \"example.db\"");
    }
    else
    {
        // 连接失败
        print("无法连接数据库 \"example.db\"");
    }

    // ...

    return 1;
}

public OnGameModeExit()
{
    // 关闭已存在的数据库连接
    if (db_close(gDBConnectionHandle))
    {
        // 清理句柄
        gDBConnectionHandle = DB:0;
    }

    // ...

    return 1;
}
```

## 注意事项

注意

使用非零的无效句柄将导致服务器崩溃！请始终使用[db\_open](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/db_open)获取有效数据库连接句柄

## 相关函数

-   [db\_open](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/db_open): 建立 SQLite 数据库连接
-   [db\_close](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/db_close): 关闭 SQLite 数据库连接
-   [db\_query](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/db_query): 执行 SQL 查询语句
-   [db\_free\_result](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/db_free_result): 释放查询结果内存
-   [db\_num\_rows](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/db_num_rows): 获取结果集行数
-   [db\_next\_row](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/db_next_row): 跳转至下一行数据
-   [db\_num\_fields](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/db_num_fields): 获取结果集字段数量
-   [db\_field\_name](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/db_field_name): 通过索引获取字段名称
-   [db\_get\_field](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/db_get_field): 通过字段索引获取当前行数据
-   [db\_get\_field\_assoc](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/db_get_field_assoc): 通过字段名称获取当前行数据
-   [db\_get\_field\_int](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/db_get_field_int): 通过字段索引获取整型数据
-   [db\_get\_field\_assoc\_int](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/db_get_field_assoc_int): 通过字段名称获取整型数据
-   [db\_get\_field\_float](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/db_get_field_float): 通过字段索引获取浮点数据
-   [db\_get\_field\_assoc\_float](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/db_get_field_assoc_float): 通过字段名称获取浮点数据
-   [db\_get\_mem\_handle](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/db_get_mem_handle): 获取数据库连接内存句柄
-   [db\_get\_result\_mem\_handle](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/db_get_result_mem_handle): 获取查询结果内存句柄
-   [db\_debug\_openfiles](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/db_debug_openfiles): 调试用-获取已打开数据库连接数
-   [db\_debug\_openresults](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/db_debug_openresults): 调试用-获取已打开查询结果数

## 现代 SQLite 函数

-   [DB\_Open](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/DB_Open_Modern): 建立 SQLite 数据库连接
-   [DB\_Close](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/DB_Close_Modern): 关闭 SQLite 数据库连接
-   [DB\_ExecuteQuery](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/DB_ExecuteQuery): 执行 SQL 查询语句
-   [DB\_FreeResultSet](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/DB_FreeResultSet): 释放查询结果集内存
-   [DB\_GetRowCount](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/DB_GetRowCount): 获取结果集行数
-   [DB\_SelectNextRow](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/DB_SelectNextRow): 选择下一行数据
-   [DB\_GetFieldCount](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/DB_GetFieldCount): 获取结果集字段数量
-   [DB\_GetFieldName](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/DB_GetFieldName): 通过索引获取字段名称
-   [DB\_GetFieldString](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/DB_GetFieldString): 通过字段索引获取字符串数据
-   [DB\_GetFieldStringByName](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/DB_GetFieldStringByName): 通过字段名称获取字符串数据
-   [DB\_GetFieldInt](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/DB_GetFieldInt): 通过字段索引获取整型数据
-   [DB\_GetFieldIntByName](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/DB_GetFieldIntByName): 通过字段名称获取整型数据
-   [DB\_GetFieldFloat](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/DB_GetFieldFloat): 通过字段索引获取浮点数据
-   [DB\_GetFieldFloatByName](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/DB_GetFieldFloatByName): 通过字段名称获取浮点数据
-   [DB\_GetMemHandle](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/DB_GetMemHandle): 获取通过 DB\_Open 打开的 SQLite 数据库的内存句柄
-   [DB\_GetLegacyDBResult](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/DB_GetLegacyDBResult): 获取通过 DB\_ExecuteQuery 执行的 SQLite 查询结果的内存句柄
-   [DB\_GetDatabaseConnectionCount](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/DB_GetDatabaseConnectionCount): 调试用-获取数据库连接数
-   [DB\_GetDatabaseResultSetCount](https://omp.itsneufox.com/zh-CN/docs/scripting/functions/DB_GetDatabaseResultSetCount): 调试用-获取结果集数量
