# Interação com a base de dados (MySQL)

Os dados do HOSTMGR estão armazenados em uma base de dados mysql. Utilizamos mysqli para manipulação de dados e o objeto de conexão está disponível caso você precise interagir diretamente com a base.

para executar uma query sql você deve usar por parametro o objeto $banco, que é responsável pela interação com a base de dados.

A conexão está armazenada em $banco->con.

você pode utilizar as seguintes funções:

{% code overflow="wrap" %}

```php
$banco->conectar(); //abre uma conexão


$banco->query("select * from clientes"); //executa uma query mysql e retorna seu objeto


$sql = $banco->consultar("select * from clientes where id='5'");//comando para consulta
$banco->rows($sql);//retorna a quantidade de registros encontrados

$dados=$banco->lista($sql,true); //banco lista retorna o resultado da consulta. Se você busca um único registro, use o parametro , true para acessar diretamente o parametro sem a necessidade de acessar o index do registro. ex sem o parametro true: echo $dados[0]['nome'] / Exemplo com o parametro true: echo $dados['nome'];

//Us comum de $banco->lista:
foreach($banco->lista($sql) as $linha){
    print_r($linha);
}


$banco->fechar(); //para encerrar uma conexão
```

{% endcode %}

{% hint style="warning" %}
**IMPORTANTE**

A variável banco está localizada na raiz do código, portanto, se você precisar usar os dados do banco dentro de uma função, deverá trazer esse objeto para dentro de sua função por meio do comando global.
{% endhint %}

exemplo de como utilizar o objeto de conexão dentro de uma função:

```php
function minhaFuncao($parametros){

    global $banco;
    
    $sql=$banco->query("update contas set usuario='exemplo' where id_conta='5'");

}
```

### Você também pode utilizar o mysqli de forma nativa se preferir:

```php
$sql=mysqli_query($banco->con, "select * from clientes where id_cliente='3' limit 1");

if(mysqli_num_rows($sql)>0){
    //registro encontrado
    $linha=mysqli_fetch_assoc($sql);
    print_r($linha);
}else{
    //registro não encontrado
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://hostmgr.gitbook.io/desenvolvedores/interacao-com-a-base-de-dados-mysql.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
