libro
www.tuyano.com
初心者のためのLaravel入門

データベースアクセスの基本 (1/5)

作成:2016-02-07 09:56
更新:2016-02-07 09:56

■データベースの設定について

Webアプリケーションの開発において、一番面倒なのが「データベース」関係の処理でしょう。リレーショナルデータベースは、SQLというPHPとはまるで違うデータアクセス言語でデータを処理します。またデータベースの種類が変わると、言語仕様も微妙に違っていたりします。PHP内からデータベースの設定に合わせてSQLのクエリー文(命令文)を実行することはできますが、例えば仕様変更でデータベースやテーブルを変更したりすると大変なことになってしまいますね。

Laravelでは、データベースに関する情報は設定ファイルで一元管理されており、データベースにアクセスするためのクラスを利用してアクセスを行うため、あちこちにデータベースの個々の設定などが散らばることはありません。データベースの変更も、設定ファイルを少し変更するだけで行えます。実際にデータアクセスしている処理を修正する必要はほとんどありません。

では、データベースの設定はどこにあるのでしょうか。これは、「config」フォルダの「database.php」というファイルに記述されています。ここにある、下のリスト欄の記述部分がデータベースに関する設定です。

ここでは、'connections'というものに配列の形で設定情報が用意されています。この配列には、'sqlite', mysql', 'pgsql', 'sqlsrv'という値が用意されており、これらはそれぞれSQLiteMySQLPostgreSQLMicrosoft SQL Serverの設定になります。

database.phpを見ると、その中に以下のような文が見つかるはずです。
'default' => env('DB_CONNECTION', ○○ ),

この○○のところに、使用するデータベースの設定名を入力します。今回は、わざわざデータベース・サーバーを建てるのは面倒なので、PHPに用意されているSQLiteを利用することにしましょう。上記の文を見つけて、以下のように修正して下さい。
'default' => env('DB_CONNECTION', 'sqlite'),

これで、LaravelからSQLiteが利用できるようになります。データベースの設定で行うべきは、この1文の修正だけです。他には何もありません。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

'connections' => [

    'sqlite' => [
        'driver'   => 'sqlite',
        'database' => database_path('database.sqlite'),
        'prefix'   => '',
    ],

    'mysql' => [
        'driver'    => 'mysql',
        'host'      => env('DB_HOST', 'localhost'),
        'database'  => env('DB_DATABASE', 'forge'),
        'username'  => env('DB_USERNAME', 'forge'),
        'password'  => env('DB_PASSWORD', ''),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
    ],

    'pgsql' => [
        'driver'   => 'pgsql',
        'host'     => env('DB_HOST', 'localhost'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'charset'  => 'utf8',
        'prefix'   => '',
        'schema'   => 'public',
    ],

    'sqlsrv' => [
        'driver'   => 'sqlsrv',
        'host'     => env('DB_HOST', 'localhost'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'charset'  => 'utf8',
        'prefix'   => '',
    ],

],
※関連コンテンツ

「初心者のためのLaravel入門」に戻る