mugomes/miphantdb 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

mugomes/miphantdb

Composer 安装命令:

composer require mugomes/miphantdb

包简介

Biblioteca para trabalhar com Banco de Dados MariaDB.

README 文档

README

Note

This repository has been migrated to Codeberg, please see: https://codeberg.org/bluice/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

  • 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

Via Composer (recomendado)

composer require bluiceoficial/miphantdb

Manual

Copie os arquivos da pasta MiPhantDB para o seu projeto e utilize o include_once para adicionar as classes como database, select, insert, update, delete, table.

🔌 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

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

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

$select->getResult();

$row = $select->fetch();

➕ 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

use MiPhantDB\update;

$update = new update($dbConfig);

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

❌ DELETE

use MiPhantDB\delete;

$delete = new delete($dbConfig);

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

🧱 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

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

🔍 Verificar se coluna existe

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

🔒 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?

  • 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?

  • 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

$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

  • 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

Murilo Gomes Julio

🔗 https://www.bluice.com.br

📺 https://youtube.com/@bluiceoficial

🤝 Support

📜 License

The MiPhantDB is provided under:

SPDX-License-Identifier: LGPL-2.1-only

Beign under the terms of the GNU Lesser General Public License version 2.1 only.

All contributions to the MiPhantDB are subject to this license.

mugomes/miphantdb 适用场景与选型建议

mugomes/miphantdb 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 36 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 10 月 28 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 mugomes/miphantdb 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 mugomes/miphantdb 我们能提供哪些服务?
定制开发 / 二次开发

基于 mugomes/miphantdb 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 36
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 9
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: LGPL-2.1-only
  • 更新时间: 2025-10-28