tito/pdo-access-bundle

支持pdo_dblib (MSSQL) 驱动的Doctrine库

dev-master 2015-12-12 13:14 UTC

This package is auto-updated.

Last update: 2022-01-07 04:41:53 UTC


README

Doctrine扩展,允许通过Doctrine DBAL在Symfony2中读取Microsoft Access (.mdb) 文件。

它使用PDO_ODBC PHP驱动程序,因此我认为它可以与任何连接一起工作,而不仅仅是MS Access数据库。它仅在微软Windows XP上进行了测试。

它不是用于ORM映射,我只用它将旧版Microsoft Access程序中的数据导入到Symfony2。

此扩展基于 PDODblibBundle

安装

配置您的Apache服务器中的php.ini。添加以下内容:

extension=php_pdo_odbc.dll

然后,重新启动apache2服务器

将以下行添加到deps文件中

[ClalarcoPDOAccessBundle]
    git=git://github.com/clalarco/PDOAccessBundle.git
    target=/bundles/Clalarco/PDOAccessBundle 
    version=origin/master

autoload.php文件中注册它

<?php
// app/autoload.php

$loader->registerNamespaces(array(
    'Clalarco'          => __DIR__.'/../vendor/bundles',
));

现在,运行 vendors 脚本来下载bundle

$ php bin/vendors install

创建连接

** 注意:** 您需要将默认连接在doctrine中分开。请参阅 Symfony2 Doctrine配置

我创建连接的方式是通过config.yml(或config_dev.yml)。在Windows上使用以下方式工作:

# config.yml

doctrine:
    dbal:
        connections:
            msaccess:
                driver_class: Clalarco\PDOAccessBundle\Doctrine\DBAL\Driver\PDOMdbLib\Driver
                host: "{Microsoft Access Driver (*.mdb)};Dbq=C:\path_to\file.mdb"
                user: Admin
                password: your_password

将C:\path_to\file.mdb替换为您自己的路径,如果有的话,用your_password替换您的密码,如果没有则留空。'msaccess'名称也可以重命名。

在您的控制器中,如果您的连接名称为'msaccess',则添加以下行以获取连接:

<?php

class MyController extends Controller
{
    public function myAction()
    {
        ...
        $conn = $this->get('doctrine.dbal.msaccess_connection');
        ...
        // Once the connection is created, SQL queries are accepted.
        // Check Doctrine DBAL documentation for more information.
        $rows = $conn->fetchAll('SELECT * FROM my_table');
        ...
    }
}

如果在命令中使用该连接,则获取连接的命令如下:

        $conn = $this->getContainer()->get('doctrine')->getConnection('msaccess');

待办事项

  • 改进代码文档。