# dbConnect (Servidor)

> Abre uma conexão com um banco SQLite ou MySQL. As consultas rodam numa thread própria da conexão.

- **Plataforma**: MY Multiplayer (MYMP)
- **Tipo**: Função Lua
- **Lado**: Servidor
- **Categoria**: Banco de dados
- **URL**: https://wiki.mymp.gg/pt/dbConnect

## Sintaxe

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

## Parâmetros

| Nome | Tipo | Descrição |
| --- | --- | --- |
| `type` | `string` | `"sqlite"` ou `"mysql"`. |
| `target` | `string` | Para SQLite, o caminho do arquivo dentro do recurso que chama (as pastas são criadas). Para MySQL, pares `chave=valor` separados por `;`: `dbname`, `host`, `port` e `charset` (`utf8mb4`, `utf8mb3`, `utf8`, `latin1` ou `ascii`). |
| `user` | `string` | O usuário do MySQL. *(padrão: `""`)* |
| `password` | `string` | A senha do MySQL. *(padrão: `""`)* |

## Retorno

O elemento da conexão, ou `false` se ela não pôde ser aberta (o motivo vai para o log).

A conexão fecha quando o elemento é destruído ou o recurso para.

## Exemplo

```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"))
```

## Veja também

- [dbQuery (Servidor)](https://wiki.mymp.gg/pt/dbQuery.md): Envia uma consulta SQL cuja resposta é lida depois com dbPoll.
- [dbExec (Servidor)](https://wiki.mymp.gg/pt/dbExec.md): Executa um comando SQL sem esperar resposta.
- [destroyElement (Compartilhado)](https://wiki.mymp.gg/pt/destroyElement.md): Destrói um elemento e todos os seus filhos. Antes de sumir, cada um dispara onElementDestroy no servidor ou onClientElementDestroy no cliente.
