PHPackages                             mugomes/miphantdb - 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. mugomes/miphantdb

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

mugomes/miphantdb
=================

Biblioteca para trabalhar com Banco de Dados MariaDB.

3.0.0(4mo ago)011MITPHP

Since Oct 28Pushed 4mo agoCompare

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

READMEChangelog (4)DependenciesVersions (5)Used By (0)

MiPhantDB
=========

[](#miphantdb)

**MiPhantDB** é uma biblioteca **leve, fluente e orientada a código escrita em PHP** para abstração de banco de dados **MySQL/MariaDB**, focada em **simplicidade**, **controle explícito das queries** e **baixo overhead**.

Oferece uma **API encadeável (fluent interface)** para construção de SQL **legível**, **previsível** e **flexível**, mantendo o desenvolvedor no controle total da query final.

Ideal para projetos que precisam de **produtividade**, **performance**, **CLIs**, **APIs**, **sistemas legados** e **ambientes com pouco recurso**.

---

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

[](#-características)

- Abstração leve sobre **MySQLi**
- API fluente (encadeável)
- Suporte a **SELECT, INSERT, UPDATE, DELETE**
- Suporte a **prepared statements**
- Construção dinâmica de `WHERE`, `ORDER BY` e `LIMIT`
- Criação e alteração de tabelas via código
- Suporte a `INNER JOIN`
- Modo **sandbox** para debug
- Zero dependências externas
- Compatível com **PHP 8.4 ou superior**

---

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

[](#-instalação)

### Via Composer (recomendado)

[](#via-composer-recomendado)

```
composer require mugomes/miphantdb
```

### Manual

[](#manual)

Copie os arquivos da pasta `MiPhantDB` para o seu projeto e utilize o autoload ou `require`.

---

🔌 Conexão com o banco
---------------------

[](#-conexão-com-o-banco)

```
use MiPhantDB\database;

$db = new database([
    'server'   => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'meubanco'
], true); // true ativa o modo sandbox (logs em tela)
```

---

📖 SELECT
--------

[](#-select)

```
use MiPhantDB\select;

$select = new select([
    'server'   => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'meubanco'
]);

$select->table('users')
    ->column('id')
    ->column('name')
    ->where('status', 'ativo')
    ->orderby('name')
    ->limit(0, 10)
    ->select();

while ($row = $select->fetch()) {
    echo $row['name'];
}

$select->close();
```

---

🔐 Prepared Statements
---------------------

[](#-prepared-statements)

```
$select->table('users')
    ->where('id', '?')->prepared(1, 'i')
    ->select();

$select->getResult();

$row = $select->fetch();
```

---

➕ INSERT
--------

[](#-insert)

```
use MiPhantDB\insert;

$insert = new insert($dbConfig);

$insert->table('users')
    ->add('name', '?')
    ->add('email', '?')
    ->prepared('Murilo', 's')
    ->prepared('murilo@email.com', 's')
    ->insert();

$id = $insert->idinsert();
```

---

✏️ UPDATE
---------

[](#️-update)

```
use MiPhantDB\update;

$update = new update($dbConfig);

$update
    ->table('users')
    ->add('email', '?')
    ->where('id', '?')
    ->prepared('novo@email.com', 's')
    ->prepared(1, 'i')
    ->update();
```

---

❌ DELETE
--------

[](#-delete)

```
use MiPhantDB\delete;

$delete = new delete($dbConfig);

$delete->table('users')
    ->where('id', 1)
    ->delete();
```

---

🧱 Criação de tabelas
--------------------

[](#-criação-de-tabelas)

```
use MiPhantDB\table;

$table = new table($dbConfig);

$table->table('users')
    ->int()->autoIncrement()->primaryKey()->add('id')
    ->varcharSize(100)->add('name')
    ->varcharSize(150)->add('email')
    ->engine('InnoDB')
    ->create();
```

---

🔧 Alterar tabela
----------------

[](#-alterar-tabela)

```
$table
    ->table('users')
    ->varcharSize(255)->add('bio')
    ->alter(table::ALTER_ADD);
```

---

🔍 Verificar se coluna existe
----------------------------

[](#-verificar-se-coluna-existe)

```
if (!$table->columnExists('email')) {
    // criar coluna
}
```

---

🔒 Encerrando a conexão (`close`)
--------------------------------

[](#-encerrando-a-conexão-close)

Após executar as operações no banco de dados, é recomendável encerrar explicitamente a conexão para liberar recursos de memória e resultados pendentes.

```
$select->close();
```

### O que o `close()` faz?

[](#o-que-o-close-faz)

- Libera automaticamente o **result set** (`mysqli_free_result`) quando aplicável
- Finaliza corretamente **prepared statements**
- Encerra a conexão ativa com o banco (`mysqli_close`)
- Evita vazamento de memória em scripts longos ou CLIs

### Quando usar?

[](#quando-usar)

- Após finalizar uma consulta `CREATE`, `ALTER`, `SELECT`, `INSERT`, `UPDATE` ou `DELETE`
- Em **scripts CLI**, workers e processos de longa duração
- Em loops ou execuções repetidas de queries

### Exemplo completo

[](#exemplo-completo)

```
$select->table('users')
    ->where('status', 'ativo')
    ->select();

while ($row = $select->fetch()) {
    echo $row['name'];
}

$select->close();
```

> 💡 **Dica:**Embora o PHP feche conexões automaticamente ao final do script, o uso explícito de `close()` é uma boa prática para garantir desempenho e previsibilidade.

---

🧠 Outras Informações
--------------------

[](#-outras-informações)

- Sem ORM pesado
- Sem reflexão ou proxies mágicos
- SQL continua sendo SQL
- Código previsível e fácil de depurar
- Ideal para quem **gosta de controle**

---

👤 Autor
-------

[](#-autor)

**Murilo Gomes Julio**

🔗 📺

---

🤝 Support
---------

[](#-support)

- GitHub Sponsors:
- Apoie o projeto:

---

📜 License
---------

[](#-license)

Copyright (c) 2025-2026 Murilo Gomes Julio

Licensed under the [MIT](https://github.com/mugomes/miphantdb/blob/main/LICENSE).

All contributions to the MiPhantDB are subject to this license.

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance76

Regular maintenance activity

Popularity6

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 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 ~24 days

Total

4

Last Release

128d ago

Major Versions

1.0.2 → 2.0.02025-11-17

2.0.0 → 3.0.02026-01-10

### Community

Maintainers

![](https://www.gravatar.com/avatar/e782d9d31b820ca2583dce523269edf91ef2db0d5c48af08384fad35324643cd?d=identicon)[mugomesoficial](/maintainers/mugomesoficial)

---

Top Contributors

[![mugomes](https://avatars.githubusercontent.com/u/214032302?v=4)](https://github.com/mugomes "mugomes (22 commits)")

---

Tags

composerdatabasedblibraryphp

### Embed Badge

![Health badge](/badges/mugomes-miphantdb/health.svg)

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

###  Alternatives

[doctrine/orm

Object-Relational-Mapper for PHP

10.2k285.3M6.2k](/packages/doctrine-orm)[jdorn/sql-formatter

a PHP SQL highlighting library

3.9k115.1M102](/packages/jdorn-sql-formatter)[illuminate/database

The Illuminate Database package.

2.8k52.4M9.4k](/packages/illuminate-database)[mongodb/mongodb

MongoDB driver library

1.6k64.0M546](/packages/mongodb-mongodb)[ramsey/uuid-doctrine

Use ramsey/uuid as a Doctrine field type.

90340.3M211](/packages/ramsey-uuid-doctrine)[reliese/laravel

Reliese Components for Laravel Framework code generation.

1.7k3.4M16](/packages/reliese-laravel)

PHPackages © 2026

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