zoilomora/doctrine-dbal-msaccess

Microsoft Access 的 Doctrine DBAL 实现

1.0.4 2020-11-26 17:31 UTC

This package is auto-updated.

Last update: 2024-09-27 01:54:03 UTC


README

这是一个支持在 Microsoft OSMicrosoft Access 数据库doctrine/dbal 库的实现。

由于 Microsoft Access 不支持基于 PDO 的连接中的某些功能,因此该实现使用 ODBC 直接连接来实现这些功能。

操作系统要求

  • Microsoft Access 数据库引擎重新分发包 (20102016)。
  • ODBC 数据源管理员 odbcad32.exe 中注册一个 DSN

安装

  1. 通过 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 了解更多信息