4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LaravelでIBM iに接続(1)【環境構築】

Last updated at Posted at 2024-12-06

Laravelは、データベース処理を自動化する仕組みが含まれているPHPフレームワークのひとつです。

Laravelの拡張パッケージであるDB2 for IBM iSeries Laravel Driverをインストールすることで、Laravelのデータベース機能をIBM iのDB2環境でも最大限に活用できるようになります。

今回は、DB2 for IBM iSeries Laravel Driverのインストール方法など、環境構築に関する手順をご紹介します。

必要なもの

検証環境

  • PC環境:Windows10 日本語
  • ODBCドライバー:ACS 1.1.9.5 Windows用ドライバー
  • PHP:PHP 8.1 Windows版
  • laravel/framework:10.10
  • bwicompanies/db2-driver:1.3

インストール方法

composerを使用してパッケージをインストールします。
以下のコマンドを実行してください。

composer require bwicompanies/db2-driver

接続先の追加

「config/database.php」ファイルに接続先を追加します。

各設定は、開発環境に合わせて適宜変更してください。
ただし、'driver'オプションは必ず'db2'にしてください。

database.php
'default' => env('DB_CONNECTION', 'myDB2Connection'),

'myDB2Connection' => [
    'driver'        => 'db2',
    'driverName'    => '{IBM i Access ODBC Driver}',
    'host'          => env('DB_HOST'),
    'username'      => env('DB_USERNAME'),
    'password'      => env('DB_PASSWORD'),
    'database'      => env('DB_DATABASE'),
    'prefix'        => '',
    'schema'        => env('DB_SCHEMA'),
    'port'          => env('DB_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'            => 0,
        'ConnectionType'        => 0,
        'DefaultLibraries'      => '',
        'Naming'                => 1,
        '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'       => 1,
        'QAQQINILibrary'        => '',
        'SQDIAGCODE'            => '',
        'LANGUAGEID'            => 'JPN',
        'SORTTABLE'             => '',
        'SortSequence'          => 0,
        'SORTWEIGHT'            => 0,
        'AllowUnsupportedChar'  => 0,
        'CCSID'                 => 1208,
        '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_EMULATE_PREPARES => false,
        PDO::ATTR_PERSISTENT       => false,
    ]
],

接続先の設定

「.env」ファイルを編集して、接続先の情報を追加します。

.env

DB_HOST=       // IPアドレス
DB_DATABASE=   // DSN名
DB_USERNAME=   // ユーザー
DB_PASSWORD=   // パスワード
DB_SCHEMA=     // 一つのライブラリのみを使用する場合(任意項目)

設定は以上で完了です。
次回は、IBM iに接続してデータを取得する方法について紹介します。

ご参考になれば幸いです。最後までお読み頂きありがとうございます。

4
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?