zoilomora / doctrine-dbal-msaccess
Microsoft Access 的 Doctrine DBAL 实现
1.0.4
2020-11-26 17:31 UTC
Requires
- php: ^7.4
- ext-mbstring: *
- ext-odbc: *
- ext-pdo: *
- doctrine/dbal: ^2.12
Requires (Dev)
- pccomponentes/coding-standard: ^1.2
- phpstan/phpstan: ^0.12.56
- phpunit/phpunit: ^9.4
This package is auto-updated.
Last update: 2024-09-27 01:54:03 UTC
README
这是一个支持在 Microsoft OS 中 Microsoft Access 数据库 的 doctrine/dbal 库的实现。
由于 Microsoft Access 不支持基于 PDO 的连接中的某些功能,因此该实现使用 ODBC 直接连接来实现这些功能。
操作系统要求
安装
-
通过 composer 安装
composer require zoilomora/doctrine-dbal-msaccess
注册一个 DSN
我们不需要重新发明轮子,互联网上有成百上千的教程介绍如何为 Microsoft Access 设置 DSN。我留给你一个 视频,我认为它解释得非常完美。
DSN 配置完成后,我们需要按照以下方式配置连接
$connection = \Doctrine\DBAL\DriverManager::getConnection( [ 'driverClass' => \ZoiloMora\Doctrine\DBAL\Driver\MicrosoftAccess\Driver::class, 'driverOptions' => [ 'dsn' => 'name of the created dsn', ], ] );
发现的问题
字符编码问题
Access 数据库的默认字符编码是 Windows-1252。如果您想将数据转换为 UTF-8,一个简单的解决方案是
$field = \mb_convert_encoding($field, 'UTF-8', 'Windows-1252');
如果您想将所有数据自动编码为 UTF-8(可能会降低性能),请按以下方式配置驱动程序
$connection = \Doctrine\DBAL\DriverManager::getConnection( [ 'driverClass' => \ZoiloMora\Doctrine\DBAL\Driver\MicrosoftAccess\Driver::class, 'driverOptions' => [ 'dsn' => 'name of the created dsn', 'charset' => 'UTF-8', ], ] );
许可证
遵循 MIT 许可证
阅读 LICENSE 了解更多信息