fiberphp / database-mysql
🐬 FiberPHP MySQL 驱动 —— DSN 解析、时区配置、断线检测,兼容 MySQL 全版本。
dev-master
2026-08-23 06:14 UTC
Requires
- php: >=8.3
- ext-pdo: *
- ext-pdo_mysql: *
- fiberphp/database: dev-master
This package is auto-updated.
Last update: 2026-08-23 06:15:17 UTC
README
FiberPHP 框架的 MySQL 数据库驱动包。提供 MySQL DSN 拼接、会话时区设置、断线检测、MySQL SQL 方言(backtick 引用、SHOW FULL COLUMNS、rand()、ON DUPLICATE KEY UPDATE、VALUES(col))。
环境要求
- PHP >= 8.3
ext-pdoext-pdo_mysql- MySQL >= 8.0
fiberphp/databasedev-master
安装
composer require fiberphp/database-mysql
安装后框架通过 #[Package] 属性自动发现 Provider,在 register() 阶段调用 Db::registerDriver('mysql', Driver::class) 完成注册。无需手动配置。
方言实现
| 方法 | MySQL 实现 |
|---|---|
quoteIdentifier | `name` 反引号引用 |
getColumnsSql | SHOW FULL COLUMNS FROM \table`` |
getTablesSql | SHOW TABLES [FROM db] |
normalizeColumns | 解析 SHOW FULL COLUMNS 结果 |
randomFunction | rand() |
buildUpsertPrefix | ON DUPLICATE KEY UPDATE |
quoteExcludedColumn | VALUES(col) |
时区设置
// config/database.php
'mysql' => [
'driver' => 'mysql',
'host' => '127.0.0.1',
'port' => 3306,
'database' => 'demo',
'username' => 'root',
'password' => '',
'charset' => 'utf8mb4',
'timezone' => '+08:00', // SET time_zone = '+08:00'
],
详细用法见 fiberphp/database。