データベースについて

トップ > 設置の基本 > データベースについて

目次

データベースの設定方法

PHP Labo で配布しているプログラムには、データベースを使用するものがあります。データベースの概要についてはデータベースとはを参照してください。

利用できるデータベースはSQLiteとMySQLの2種類です。どちらを利用するかは、各プログラムに付属している設定ファイル(config.php)から指定することができます。

データベースの設定は以下の部分です。ただし、データベースを使用しないプログラムには、これらの設定項目はありません。(設定不要です。)

//データベースの種類(sqlite3 ... SQLite3 / sqlite2 ... SQLite2 / mysql ... MySQL)
define('DATABASE_TYPE', 'sqlite3');

//接続先(MySQL用)
define('DATABASE_HOST', '');

//ユーザー名(MySQL用)
define('DATABASE_USER', '');

//パスワード(MySQL用)
define('DATABASE_PWD', '');

//文字コード(MySQL用)
define('DATABASE_CHARSET', '');

//データベース名
define('DATABASE_NAME', 'database/blog.db');

//記事格納テーブル名
define('DATABASE_TABLE_ARTICLE', 'blog_article');

次からは、それぞれのデータベースを利用する方法を紹介します。

SQLiteの利用

データベースの種類

SQLiteを利用する場合、「データベースの種類」は sqlite3 もしくは sqlite2 と設定します。sqlite3 なら SQLite Ver 3 に、sqlite2 なら SQLite Ver 2 に接続することができます。

//データベースの種類(sqlite3 ... SQLite3 / sqlite2 ... SQLite2 / mysql ... MySQL)
define('DATABASE_TYPE', 'sqlite3');

接続先・ユーザー名・パスワード

SQLiteの場合、接続先・ユーザー名・パスワード・文字コードの設定は不要です。以下の部分は特に変更する必要はありません。

//接続先(MySQL用)
define('DATABASE_HOST', '');

//ユーザー名(MySQL用)
define('DATABASE_USER', '');

//パスワード(MySQL用)
define('DATABASE_PWD', '');

//文字コード(MySQL用)
define('DATABASE_CHARSET', '');

データベース名

SQLiteの場合、データベース名はデータを記録するファイルの名前になります。設定例を挙げると、

//データベース名
define('DATABASE_NAME', 'database/blog.db');

このように設定した場合、index.php と同じディレクトリ内に database/ を作成し、さらにその中に blog.db を作成します。また、database/ のパーミッションを 707 に、blog.db パーミッションを 606 に設定します。(拡張子は db にしていますが、制限は無いので何でも大丈夫です。)

テーブル名

それ以降はテーブル名の設定になります。プログラムによっては、複数のテーブルを扱うものもあります。

//記事格納テーブル名
define('DATABASE_TABLE_ARTICLE', 'blog_article');

テーブル名は基本的に変更する必要はありませんが、必要なら半角英数字で適当な名前に変更することができます。
また、テーブルはあらかじめ作成しておく必要はありません。セットアップ時に、各プログラムがテーブルを作成するようにしています。

MySQLの利用

設定するには、MySQLの「接続先(サーバー)」「ユーザー名」「パスワード」「データベース名」情報が必要になります。また、データベースはあらかじめ作成しておきます。

各情報の取得方法とデータベースの作成方法は、以下のページが参考になります。ロリポップ!とXREA以外のサーバーでも、同じような手順で取得できると思います。詳しくは、サーバーのサポートページなどを参照してください。

データベースの種類

MySQLを利用する場合、「データベースの種類」は mysql と設定します。

//データベースの種類(sqlite3 ... SQLite3 / sqlite2 ... SQLite2 / mysql ... MySQL)
define('DATABASE_TYPE', 'mysql');

接続先

MySQLに対応しているサーバーの場合、接続先は指定されているはずなので、そのとおりに設定します。例えば接続先が mysql.example.com の場合、以下のように設定します。

//接続先(MySQL用)
define('DATABASE_HOST', 'mysql.example.com');

ユーザー名・パスワード

ユーザー名とパスワードは、FTPのユーザー名・パスワードのように、あらかじめ決められていることが多いようです。例えばユーザー名が SAMPLE でパスワードが Fyx7pwzb の場合、以下のように設定します。

//ユーザー名(MySQL用)
define('DATABASE_USER', 'SAMPLE');

//パスワード(MySQL用)
define('DATABASE_PWD', 'Fyx7pwzb');

データベース名

サーバーによっては、データベース名が指定されている場合があります。その場合は指定されたデータベース名を設定してください。サーバーによっては、専用の画面から自分でデータベースを作成する場合もあります。作成方法はサーバーのサポートページなどを参照してください。
例えばデータベース名が SAMPLE の場合、以下のように設定します。

//データベース名
define('DATABASE_NAME', 'SAMPLE');

なお、データベースの文字コードは UTF-8Unicode) に設定してください。

文字コード

データベース内の日本語が文字化けする場合、以下のように文字コードを指定してください。文字化けしない場合、特に設定する必要はありません。

//文字コード(MySQL用)
define('DATABASE_CHARSET', 'UTF8');

テーブル名

それ以降はテーブル名の設定になります。プログラムによっては、複数のテーブルを扱うものもあります。

//記事格納テーブル名
define('DATABASE_TABLE_ARTICLE', 'blog_article');

テーブル名は基本的に変更する必要はありません。ただ、一つのデータベースで同じプログラムを複数設置する場合、テーブル名が重複してしまいます。また、他のプログラムで偶然同じテーブル名が利用されている可能性もあります。
その場合はテーブル名を別のものに変更してください。テーブル名は、半角英数字で適当な名前を付けることができます。

なお、テーブルはあらかじめ作成しておく必要はありません。セットアップ時に、各プログラムがテーブルを作成するようにしています。