php-thalla/laravel-db2

laravel-db2 是 Laravel 的一个简单 DB2 服务提供者。它通过扩展 Laravel 框架的 Illuminate 数据库组件来提供 DB2 连接。

1.0 2024-04-10 13:10 UTC

This package is auto-updated.

Last update: 2024-09-10 14:15:57 UTC


README

这是一个 cooperl/laravel-db2 的分支,用于通过 ODBC 连接启用 SSL 连接到 IBM DB2 云数据库。

laravel-db2

Latest Stable Version Total Downloads Latest Unstable Version License

laravel-db2 是 Laravel 的一个简单 DB2 服务提供者。它通过扩展 Laravel 框架的 Illuminate 数据库组件来提供 DB2 连接。

安装

将 laravel-db2 添加到您的 composer.json 文件中

"require": {
    "php-thalla/laravel-db2": "1.0"
}

使用 composer 安装此包。

$ composer update

数据库配置

配置 laravel-db2 有两种方式。您可以选择最方便的方式。您可以将您的 DB2 凭据放入 config/database.php 文件(选项 1)或使用通过 artisan 命令行生成的包配置文件(选项 2)。

请检查您的连接适当的特定 DSN 参数。例如,以下是 IBMi 的 ODBC 关键字 https://www.ibm.com/support/knowledgecenter/fr/ssw_ibm_i_74/rzaik/connectkeywords.htm

如果您在使用 UTF8 区域设置的 PHP 应用程序中遇到包含非不变字符集外的字符(例如:“ü”)的字符字段的问题,则通过设置以下连接字符串关键字来防止额外垃圾数据的解决方案是:DEBUG = 65536

选项 1:使用 config/database.php 文件配置 DB2

只需将以下代码添加到您的 config/database.php 文件末尾即可

    /*
    |--------------------------------------------------------------------------
    | DB2 Databases
    |--------------------------------------------------------------------------
    */

    'ibmi' => [
        'driver' => 'db2_ibmi_odbc',
        // or 'db2_ibmi_ibm' / 'db2_zos_odbc' / 'db2_expressc_odbc
        'driverName' => '{IBM i Access ODBC Driver}',
        // or '{iSeries Access ODBC Driver}' / '{IBM i Access ODBC Driver 64-bit}'
        'host' => 'server',
        'username' => '',
        'password' => '',
        'database' => 'WRKRDBDIRE entry',
        'prefix' => '',
        'schema' => 'default schema',
        'port' => 50000,
        'date_format' => 'Y-m-d H:i:s',
        // or 'Y-m-d H:i:s.u' / 'Y-m-d-H.i.s.u'...
        'odbc_keywords' => [
            'SIGNON' => 3,
            'SSL' => 0,
            'CommitMode' => 2,
            'ConnectionType' => 0,
            'DefaultLibraries' => '',
            'Naming' => 0,
            'UNICODESQL' => 0,
            'DateFormat' => 5,
            'DateSeperator' => 0,
            'Decimal' => 0,
            'TimeFormat' => 0,
            'TimeSeparator' => 0,
            'TimestampFormat' => 0,
            'ConvertDateTimeToChar' => 0,
            'BLOCKFETCH' => 1,
            'BlockSizeKB' => 32,
            'AllowDataCompression' => 1,
            'CONCURRENCY' => 0,
            'LAZYCLOSE' => 0,
            'MaxFieldLength' => 15360,
            'PREFETCH' => 0,
            'QUERYTIMEOUT' => 1,
            'DefaultPkgLibrary' => 'QGPL',
            'DefaultPackage' => 'A /DEFAULT(IBM),2,0,1,0',
            'ExtendedDynamic' => 0,
            'QAQQINILibrary' => '',
            'SQDIAGCODE' => '',
            'LANGUAGEID' => 'ENU',
            'SORTTABLE' => '',
            'SortSequence' => 0,
            'SORTWEIGHT' => 0,
            'AllowUnsupportedChar' => 0,
            'CCSID' => 819,
            'GRAPHIC' => 0,
            'ForceTranslation' => 0,
            'ALLOWPROCCALLS' => 0,
            'DB2SQLSTATES' => 0,
            'DEBUG' => 0,
            'TRUEAUTOCOMMIT' => 0,
            'CATALOGOPTIONS' => 3,
            'LibraryView' => 0,
            'ODBCRemarks' => 0,
            'SEARCHPATTERN' => 1,
            'TranslationDLL' => '',
            'TranslationOption' => 0,
            'MAXTRACESIZE' => 0,
            'MultipleTraceFiles' => 1,
            'TRACE' => 0,
            'TRACEFILENAME' => '',
            'ExtendedColInfo' => 0,
        ],
        'options' => [
            PDO::ATTR_CASE => PDO::CASE_LOWER,
            PDO::ATTR_PERSISTENT => false
        ]
        + (defined('PDO::I5_ATTR_DBC_SYS_NAMING') ? [PDO::I5_ATTI5_ATTR_DBC_SYS_NAMINGR_COMMIT => false] : [])
        + (defined('PDO::I5_ATTR_COMMIT') ? [PDO::I5_ATTR_COMMIT => PDO::I5_TXN_NO_COMMIT] : [])
        + (defined('PDO::I5_ATTR_JOB_SORT') ? [PDO::I5_ATTR_JOB_SORT => false] : [])
        + (defined('PDO::I5_ATTR_DBC_LIBL') ? [PDO::I5_ATTR_DBC_LIBL => ''] : [])
        + (defined('PDO::I5_ATTR_DBC_CURLIB') ? [PDO::I5_ATTR_DBC_CURLIB => ''] : [])
    ],

驱动设置可以是

  • 'db2_ibmi_odbc' 用于 IBMi ODBC 连接
  • 'db2_ibmi_ibm' 用于 IBMi PDO_IBM 连接
  • 'db2_zos_odbc' 用于 zOS ODBC 连接
  • 'db2_expressc_odbc' 用于 Express-C ODBC 连接

然后如果驱动器是 'db2_*_odbc',则必须将数据库设置为 ODBC 连接名称。如果驱动器是 'db2_ibmi_ibm',则必须将数据库设置为 IBMi 数据库名称(WRKRDBDIRE)。

选项 2:使用包配置文件配置 DB2

从您项目的根目录运行命令行

$ php artisan vendor:publish

按照上述方式将您的 laravel-db2 凭据设置在 config/db2.php

队列配置

只需将数据库连接驱动值设置为 'db2_odbc'config/queue.php 文件中

使用

请参阅 Laravel 框架文档