PHPackages                             buildcake/sqlkit - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. buildcake/sqlkit

ActiveLibrary[Database &amp; ORM](/categories/database)

buildcake/sqlkit
================

Camada SQL simples com drivers (MySQL agora, Oracle depois) e compilador de query com validação automática de tipos.

v1.0.10(5mo ago)0522MITPHPPHP &gt;=8.0

Since Nov 9Pushed 5mo agoCompare

[ Source](https://github.com/DesenvolvimentoEasingJob/buildcake-sqlkit)[ Packagist](https://packagist.org/packages/buildcake/sqlkit)[ RSS](/packages/buildcake-sqlkit/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (5)Used By (2)

BuildCake SqlKit
================

[](#buildcake-sqlkit)

Uma biblioteca PHP simples e poderosa para interagir com bancos de dados MySQL, fornecendo uma camada de abstração SQL com drivers e um compilador de queries com validação automática de tipos.

Características
---------------

[](#características)

- ✅ **Drivers de Banco de Dados**: Suporte para MySQL (Oracle em desenvolvimento)
- ✅ **Validação Automática de Tipos**: Conversão e validação automática de dados baseada na estrutura da tabela
- ✅ **Query Builder**: Sistema de construção de queries com parâmetros seguros
- ✅ **PSR-4 Compatible**: Estrutura de namespaces seguindo padrões PSR-4
- ✅ **Prepared Statements**: Proteção contra SQL Injection usando PDO

Instalação
----------

[](#instalação)

```
## Instalação

composer require buildcake/sqlkit
```

Requisitos
----------

[](#requisitos)

- PHP &gt;= 8.0
- Extensão PDO habilitada
- MySQL 5.7+ ou MariaDB 10.2+

Configuração
------------

[](#configuração)

Configure as variáveis de ambiente ou passe um array de configuração:

```
// Via variáveis de ambiente
$_ENV['DB_HOST'] = 'localhost';
$_ENV['DB_NAME'] = 'meu_banco';
$_ENV['DB_USER'] = 'usuario';
$_ENV['DB_PASS'] = 'senha';
$_ENV['DB_PORT'] = '3306'; // Opcional, padrão é 3306
$_ENV['DB_TYPE'] = 'MySQL'; // Opcional, padrão é MySQL

// Ou via array de configuração
$config = [
    'DB_HOST' => 'localhost',
    'DB_NAME' => 'meu_banco',
    'DB_USER' => 'usuario',
    'DB_PASS' => 'senha',
    'DB_PORT' => '3306', // Opcional, padrão é 3306
    'DB_TYPE' => 'MySQL'
];
```

Uso Básico
----------

[](#uso-básico)

### Inicialização

[](#inicialização)

```
use BuildCake\SqlKit\Sql;

// Inicializar com configuração padrão (usa $_ENV)
$sql = Sql::Call();

// Ou passar configuração customizada
$sql = Sql::Call($config);
```

### Operações CRUD Simples

[](#operações-crud-simples)

```
use BuildCake\SqlKit\Sql;

$sql = Sql::Call();

// SELECT
$resultados = $sql->Select("SELECT * FROM usuarios WHERE ativo = 1");

// INSERT
$id = $sql->Insert("INSERT INTO usuarios (nome, email) VALUES ('João', 'joao@email.com')");

// UPDATE
$sql->Update("UPDATE usuarios SET nome = 'João Silva' WHERE id = 1");

// DELETE
$sql->Delete("DELETE FROM usuarios WHERE id = 1");
```

### Operações com Parâmetros

[](#operações-com-parâmetros)

```
use BuildCake\SqlKit\Sql;

$sql = Sql::Call();

// SELECT com parâmetros
$params = [
    ['COLUMN_NAME' => 'id', 'VALUE' => 1],
    ['COLUMN_NAME' => 'ativo', 'VALUE' => true]
];
$resultados = $sql->SelectParms($params, "SELECT * FROM usuarios WHERE id = :id AND ativo = :ativo");

// INSERT com parâmetros
$params = [
    ['COLUMN_NAME' => 'nome', 'VALUE' => 'João'],
    ['COLUMN_NAME' => 'email', 'VALUE' => 'joao@email.com']
];
$id = $sql->InsertParms($params, "INSERT INTO usuarios (nome, email) VALUES (:nome, :email)");
```

Query Builder (BuildQuery)
--------------------------

[](#query-builder-buildquery)

A classe `BuildQuery` oferece métodos avançados com validação automática de tipos baseada na estrutura da tabela.

### Inserir Dados (runPost)

[](#inserir-dados-runpost)

```
use BuildCake\SqlKit\Query\BuildQuery;

$buildQuery = new BuildQuery();

$data = [
    'nome' => 'João Silva',
    'idade' => '25',           // Será convertido para int automaticamente
    'ativo' => 'true',         // Será convertido para 1
    'salario' => '1500.50',    // Será convertido para float
    'data_nascimento' => '1998-05-15', // Será validado como DATE
    'email' => 'joao@email.com'
];

try {
    $id = $buildQuery->runPost('usuarios', $data);
    echo "Usuário inserido com ID: $id";
} catch (Exception $e) {
    echo "Erro: " . $e->getMessage();
}
```

### Atualizar Dados (runPut)

[](#atualizar-dados-runput)

```
use BuildCake\SqlKit\Query\BuildQuery;

$buildQuery = new BuildQuery();

$updateData = [
    'id' => 1,
    'nome' => 'João Silva Atualizado',
    'idade' => 26
];

$result = $buildQuery->runPut('usuarios', $updateData);
echo "Linhas afetadas: $result";
```

### Deletar Dados (runDelet)

[](#deletar-dados-rundelet)

```
use BuildCake\SqlKit\Query\BuildQuery;

$buildQuery = new BuildQuery();

// Soft delete (marca como inativo)
$ids = [1, 2, 3];
$result = $buildQuery->runDelet('usuarios', $ids);
```

### Executar Query Customizada (runQuery)

[](#executar-query-customizada-runquery)

```
use BuildCake\SqlKit\Query\BuildQuery;

$buildQuery = new BuildQuery();

$query = "SELECT * FROM usuarios WHERE idade > :idade AND ativo = :ativo";
$params = [
    'idade' => 18,
    'ativo' => true
];

$resultados = $buildQuery->runQuery($query, $params);
```

### Obter Informações da Tabela

[](#obter-informações-da-tabela)

```
use BuildCake\SqlKit\Query\BuildQuery;

$buildQuery = new BuildQuery();

// Obter informações dos campos
$fieldsInfo = $buildQuery->getTableFieldsInfo('usuarios');

// Validar campos obrigatórios
$data = ['nome' => 'João'];
$missingFields = $buildQuery->validateRequiredFields('usuarios', $data);

if (!empty($missingFields)) {
    echo "Campos obrigatórios faltando: " . implode(', ', $missingFields);
}
```

Validação Automática de Tipos
-----------------------------

[](#validação-automática-de-tipos)

A biblioteca automaticamente valida e converte tipos de dados baseado na estrutura da tabela:

- **Booleanos**: Converte `true`/`false`, `'true'`/`'false'`, `1`/`0` para valores apropriados
- **Inteiros**: Valida e converte strings numéricas para inteiros
- **Decimais**: Converte para float quando necessário
- **Datas**: Valida formatos DATE, DATETIME, TIMESTAMP
- **JSON**: Valida e converte arrays/objetos para JSON
- **Strings**: Trata e sanitiza strings

Métodos Estáticos Úteis
-----------------------

[](#métodos-estáticos-úteis)

```
use BuildCake\SqlKit\Sql;

// Executar query com sanitização
$result = Sql::runQuery("SELECT * FROM usuarios WHERE nome = :nome", ['nome' => 'João']);

// Inserir dados
$id = Sql::runPost('usuarios', ['nome' => 'João', 'email' => 'joao@email.com']);

// Atualizar dados
Sql::runPut('usuarios', ['id' => 1, 'nome' => 'João Atualizado']);

// Deletar dados
Sql::runDelet('usuarios', [1, 2, 3]);
```

Tratamento de Erros
-------------------

[](#tratamento-de-erros)

```
use BuildCake\SqlKit\Sql;
use BuildCake\SqlKit\Query\BuildQuery;

try {
    $sql = Sql::Call($config);
    $result = $sql->Select("SELECT * FROM usuarios");
} catch (Exception $e) {
    echo "Erro: " . $e->getMessage();
}
```

Estrutura do Projeto
--------------------

[](#estrutura-do-projeto)

```
src/
├── Sql.php              # Classe principal
├── Drive/
│   └── MySQLDriver.php  # Driver MySQL
└── Query/
    └── BuildQuery.php   # Query Builder com validação

```

Contribuindo
------------

[](#contribuindo)

Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou pull requests.

Licença
-------

[](#licença)

Este projeto está licenciado sob a licença MIT - veja o arquivo [LICENSE](LICENSE) para detalhes.

Autor
-----

[](#autor)

Desenvolvido por Felipe Machado Hillesheim

Roadmap
-------

[](#roadmap)

- Suporte para Oracle Database
- Suporte para PostgreSQL
- Migrations
- Transações
- Cache de queries
- Logging de queries

###  Health Score

35

—

LowBetter than 80% of packages

Maintenance72

Regular maintenance activity

Popularity10

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~10 days

Total

4

Last Release

160d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/01b1c793b7fe27f596fa5cc7ef7caa876fe6080cee0cf34aeb6cc888cfe5dd10?d=identicon)[DesenvolvimentoEasingJob](/maintainers/DesenvolvimentoEasingJob)

---

Top Contributors

[![DesenvolvimentoEasingJob](https://avatars.githubusercontent.com/u/71417413?v=4)](https://github.com/DesenvolvimentoEasingJob "DesenvolvimentoEasingJob (17 commits)")

---

Tags

databaseormmysqlsqlpdodatabase abstractionquery builder

### Embed Badge

![Health badge](/badges/buildcake-sqlkit/health.svg)

```
[![Health](https://phpackages.com/badges/buildcake-sqlkit/health.svg)](https://phpackages.com/packages/buildcake-sqlkit)
```

###  Alternatives

[cycle/database

DBAL, schema introspection, migration and pagination

64690.9k31](/packages/cycle-database)[tommyknocker/pdo-database-class

Framework-agnostic PHP database library with unified API for MySQL, MariaDB, PostgreSQL, SQLite, MSSQL, and Oracle. Query Builder, caching, sharding, window functions, CTEs, JSON, migrations, ActiveRecord, CLI tools, AI-powered analysis. Zero external dependencies.

845.7k](/packages/tommyknocker-pdo-database-class)[ramadan/easy-model

A Laravel package for enjoyably managing database queries.

101.6k](/packages/ramadan-easy-model)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
