shivanraptor/php-db-manager
Composer 安装命令:
composer require shivanraptor/php-db-manager
包简介
Modern PHP wrapper for MySQL database with prepared statements and connection pooling
README 文档
README
A modern PHP database wrapper for MySQL with prepared statements, connection pooling, and proper error handling.
Features
- UTF-8/UTF8MB4 Connection Support
- Prepared Statements by Default
- Transaction Support
- Connection Pooling
- Automatic Retry Mechanism
- Proper Exception Handling
- Type Safety
- PSR-4 Autoloading
- Modern PHP 7.4+ Features
Requirements
- PHP 7.4 or higher
- MySQL 5.7+ or MariaDB 10.3+
- PHP MySQLi extension
Installation
Using Composer
composer require shivanraptor/php-db-manager
Manual Installation
- Download the latest release
- Include the autoloader in your project:
require_once('vendor/autoload.php');
Quick Start
use PhpDbManager\DbManager; try { $db = new DbManager([ 'host' => 'localhost', 'username' => 'root', 'password' => 'your_password', 'database' => 'your_database', 'charset' => 'utf8mb4', 'port' => 3306, 'persistent' => false, 'autocommit' => true, 'retry_attempts' => 3, 'retry_delay' => 100 // milliseconds ]); // Execute a prepared statement $result = $db->execute( "SELECT * FROM users WHERE id = ? AND status = ?", ['i' => 1, 's' => 'active'] ); // Fetch a single row $user = $db->fetch($result); // Or fetch all rows $users = $db->fetchAll($result); } catch (Exception $e) { error_log('Database error: ' . $e->getMessage()); // Handle error appropriately }
Connection Options
| Option | Type | Default | Description |
|---|---|---|---|
| host | string | 'localhost' | Database host |
| username | string | - | Database username |
| password | string | - | Database password |
| database | string | - | Database name |
| charset | string | 'utf8mb4' | Connection charset |
| port | int | 3306 | Database port |
| persistent | bool | false | Use persistent connection |
| autocommit | bool | true | Enable autocommit |
| timeout | int | 30 | Connection timeout in seconds |
| retry_attempts | int | 3 | Number of connection retry attempts |
| retry_delay | int | 100 | Delay between retries in milliseconds |
Usage Examples
Basic Queries
// Select query $result = $db->execute("SELECT * FROM users WHERE id = ?", ['i' => 1]); $user = $db->fetch($result); // Insert query $db->execute( "INSERT INTO users (name, email) VALUES (?, ?)", ['s' => 'John Doe', 's' => 'john@example.com'] ); $userId = $db->lastInsertId(); // Update query $db->execute( "UPDATE users SET status = ? WHERE id = ?", ['s' => 'active', 'i' => 1] ); $affectedRows = $db->affectedRows();
Transactions
try { $db->beginTransaction(); $db->execute( "INSERT INTO orders (user_id, total) VALUES (?, ?)", ['i' => 1, 'd' => 99.99] ); $db->execute( "UPDATE inventory SET stock = stock - 1 WHERE product_id = ?", ['i' => 123] ); $db->commit(); } catch (Exception $e) { $db->rollback(); throw $e; }
Fetching Results
// Fetch as associative array $result = $db->execute("SELECT * FROM users"); $users = $db->fetchAll($result, 'assoc'); // Fetch as object $result = $db->execute("SELECT * FROM users"); $users = $db->fetchAll($result, 'object'); // Fetch as indexed array $result = $db->execute("SELECT * FROM users"); $users = $db->fetchAll($result, 'array');
Connection Info
$info = $db->getConnectionInfo(); echo "Connected to {$info['server']} as {$info['user']}"; echo "MySQL version: {$info['version']}"; echo "Charset: {$info['charset']}";
Breaking Changes from v1.x
- Constructor Changes:
// Old version $db = new dbManager($host, $user, $pass, $dbname); // New version $db = new DbManager([ 'host' => $host, 'username' => $user, 'password' => $pass, 'database' => $dbname ]);
- Namespace Required:
use PhpDbManager\DbManager;
- Error Handling:
// Old version if ($db->error !== NULL) { // error exists } // New version try { $db = new DbManager($options); } catch (Exception $e) { // Handle error }
- Query Execution:
// Old version $result = $db->query_prepare($sql, $params); $row = $db->result($result); // New version $result = $db->execute($sql, $params); $row = $db->fetch($result);
Contributing
- Fork the repository
- Create your feature branch
- Run tests and code style checks
- Submit a pull request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
For support, please open an issue in the GitHub repository or contact the maintainers.
shivanraptor/php-db-manager 适用场景与选型建议
shivanraptor/php-db-manager 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 107 次下载、GitHub Stars 达 2, 最近一次更新时间为 2015 年 09 月 30 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「mysql」 「wrapper」 「mysqli」 「mariadb」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 shivanraptor/php-db-manager 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 shivanraptor/php-db-manager 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 shivanraptor/php-db-manager 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Dibi is Database Abstraction Library for PHP
An adapter for phpmig which provides database access via mysqli
LinkedIn API PHP SDK with OAuth 2.0 & CSRF support. Can be used for social sign in or sharing on LinkedIn. Examples. Documentation.
LinkedIn API PHP SDK with OAuth 2.0 & CSRF support. Can be used for social sign in or sharing on LinkedIn. Examples. Documentation.
PHP module for MySql database
gv config package
统计信息
- 总下载量: 107
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 24
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2015-09-30