# dbConnect (Servidor)

> Abre una conexión con una base de datos SQLite o MySQL. Las consultas corren en un hilo propio de la conexión.

- **Plataforma**: MY Multiplayer (MYMP)
- **Tipo**: Función Lua
- **Lado**: Servidor
- **Categoría**: Base de datos
- **URL**: https://wiki.mymp.gg/es/dbConnect

## Sintaxis

```lua
element|false dbConnect(string type, string target [, string user = "", string password = ""])
```

## Parámetros

| Nombre | Tipo | Descripción |
| --- | --- | --- |
| `type` | `string` | `"sqlite"` o `"mysql"`. |
| `target` | `string` | Para SQLite, la ruta del archivo dentro del recurso que llama (las carpetas se crean). Para MySQL, pares `clave=valor` separados por `;`: `dbname`, `host`, `port` y `charset` (`utf8mb4`, `utf8mb3`, `utf8`, `latin1` o `ascii`). |
| `user` | `string` | El usuario de MySQL. *(por defecto: `""`)* |
| `password` | `string` | La contraseña de MySQL. *(por defecto: `""`)* |

## Retorno

El elemento de la conexión, o `false` si no se pudo abrir (el motivo va al log).

La conexión se cierra cuando su elemento se destruye o el recurso se detiene.

## Ejemplo

```lua
local db = dbConnect("sqlite", "data/players.db")
dbExec(db, "CREATE TABLE IF NOT EXISTS players (account TEXT PRIMARY KEY, money INTEGER)")

local mysql = dbConnect("mysql", "dbname=game;host=127.0.0.1;port=3306;charset=utf8mb4", "game", getConvar("db_password"))
```

## Ver también

- [dbQuery (Servidor)](https://wiki.mymp.gg/es/dbQuery.md): Envía una consulta SQL cuya respuesta se lee después con dbPoll.
- [dbExec (Servidor)](https://wiki.mymp.gg/es/dbExec.md): Ejecuta una sentencia SQL sin esperar respuesta.
- [destroyElement (Compartido)](https://wiki.mymp.gg/es/destroyElement.md): Destruye un elemento y todos sus hijos. Antes de desaparecer, cada uno dispara onElementDestroy en el servidor u onClientElementDestroy en el cliente.
