easi-power / laravel-db2
laravel-db2 是一个简单的 Laravel DB2 服务提供程序。它通过扩展 Laravel 框架的 Illuminate 数据库组件来提供 DB2 连接。
Requires
- php: ^8.2
- ext-iconv: *
- ext-pdo: *
- illuminate/database: ^10.0 || ^11.0
- dev-master
- v12.0.0
- v12.0.0-alpha
- v11.0.2
- v11.0.1
- v11.0.0
- v10.2.0
- v10.1.2
- v10.1.1
- v10.1.0-alpha
- v10.0.0-alpha
- v9.3.0
- 9.2.4
- 9.2.3
- 9.2.2
- 9.2.1
- 9.2.0
- 9.1.1
- 9.1.0
- 9.0.0
- 8.2.0.x-dev
- 8.2.0
- 8.1.1
- 8.1.0
- 8.0.1
- 8.0.0
- 7.1.1
- 7.1.0
- 7.0.x-dev
- 7.0.0
- 6.1.2
- 6.1.1
- 6.1.0
- 6.0.x-dev
- 6.0.0
- 5.8.x-dev
- 5.8.1
- 5.8.0
- 5.7.x-dev
- 5.7.3
- 5.7.2
- 5.7.1
- 5.7.0
- 5.6.x-dev
- 5.6.3
- 5.6.2
- 5.6.1
- 5.6.0
- 5.5.x-dev
- 5.5.4
- 5.5.3
- 5.5.2
- 5.5.1
- 5.5.0
- 5.4.6
- 5.4.5
- 5.4.4.2
- 5.4.4.1
- 5.4.4
- 5.4.3
- 5.4.2
- 5.4.1
- 5.4
- 5.3
- 2.5.2
- 2.5.1
- 2.5
- 2.4
- 2.3.2
- 2.3.1
- 2.3
- 2.2
- 2.1.1
- 2.1
- 2.0.2
- 2.0.1
- 2.0
- 1.0
- dev-fix/support-laravel11
- dev-master-db8
- dev-27-new-datatypes-for-db8-1
- dev-27-new-datatypes-for-db8
- dev-master-db10
- dev-24-encoding-support-for-queryexceptionspdoexceptions
- dev-20-laravel-10-compatibility-issue
- dev-19-trim-columns-automatically
- dev-master-db9
- dev-8-update-to-illuminatedatabase-9
- dev-16-additional-column-types
- dev-14-null-values-breaks-bindvalues
- dev-11-drop-all-tables-support
- dev-2-add-upsert-functionality
- dev-3-cast-specification-bug
- dev-1-char-encoding-php-74-support
- dev-fix/6.1-getColumnListing
- dev-lumen
This package is auto-updated.
Last update: 2024-09-13 13:50:32 UTC
README
laravel-db2 是一个简单的 Laravel DB2 服务提供程序。它通过扩展 Laravel 框架的 Illuminate 数据库组件来提供 DB2 连接。
安装
将 laravel-db2 添加到 composer.json 文件中
"require": {
"easi-power/laravel-db2": "^8.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
如果您在 PHP 应用程序中使用 UTF8 本地化遇到包含变异性字符集以外的字符(例如: "ü")的字符字段问题时,可以通过设置以下连接字符串关键字来防止额外的垃圾数据: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'... // Used to confirm strings to UTF-8 'from_encoding' => null, // "latin5" // Can be used to overwrite the default result processor. E.g. My\Custom\DB2Processor::class // If you leave this empty the default processor wil be used. '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
与上面相同的方式在 config/db2.php
中设置您的 laravel-db2 凭据
队列配置
只需将数据库连接驱动值设置为 'db2_odbc'
在 config/queue.php
文件中
使用
参考Laravel 框架文档。