jorgcastellano / laravel-db2
由cooperl/laravel-db2分叉而来,laravel-db2是一个简单的Laravel DB2服务提供者。它通过扩展laravel框架的Illuminate Database组件提供DB2连接。
Requires
- php: ^7.2.5
- illuminate/database: ^7.0
This package is auto-updated.
Last update: 2024-09-22 10:31:24 UTC
README
laravel-db2是Laravel的一个简单DB2服务提供者。它通过扩展laravel框架的Illuminate Database组件来提供DB2连接。
安装
将laravel-db2添加到你的composer.json文件中
"require": {
"cooperl/laravel-db2": "^7.0"
}
使用composer安装此包。
$ composer update
配置
配置laravel-db2有两种方式。你可以选择对你最方便的方式。你可以将你的DB2凭证放入app/config/database.php
文件(选项1)或者使用通过 artisan 命令行生成的包配置文件(选项2)。
请检查你的连接适当的特定DSN参数。例如,以下是IBMi的ODBC关键字https://www.ibm.com/support/knowledgecenter/fr/ssw_ibm_i_74/rzaik/connectkeywords.htm
如果你遇到包含不在不变字符集(例如:“ü”)之外的字符的字段的问题,请参阅:https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014094907 对于使用UTF8区域设置的PHP应用程序,防止额外垃圾数据的解决方法是设置以下连接字符串关键字:DEBUG = 65536
选项1:使用app/config/database.php
文件配置DB2
只需将此代码添加到你的app/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凭证设置在app/config/db2.php
使用
请参阅Laravel框架文档。