フリーPHPスクリプト配布サイト。
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を利用する場合、「データベースの種類」は 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の「接続先(サーバー)」「ユーザー名」「パスワード」「データベース名」情報が必要になります。また、データベースはあらかじめ作成しておきます。
各情報の取得方法とデータベースの作成方法は、以下のページが参考になります。ロリポップ!と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-8
(Unicode
) に設定してください。
データベース内の日本語が文字化けする場合、以下のように文字コードを指定してください。文字化けしない場合、特に設定する必要はありません。
//文字コード(MySQL用)
define('DATABASE_CHARSET', 'UTF8');
それ以降はテーブル名の設定になります。プログラムによっては、複数のテーブルを扱うものもあります。
//記事格納テーブル名
define('DATABASE_TABLE_ARTICLE', 'blog_article');
テーブル名は基本的に変更する必要はありません。ただ、一つのデータベースで同じプログラムを複数設置する場合、テーブル名が重複してしまいます。また、他のプログラムで偶然同じテーブル名が利用されている可能性もあります。
その場合はテーブル名を別のものに変更してください。テーブル名は、半角英数字で適当な名前を付けることができます。
なお、テーブルはあらかじめ作成しておく必要はありません。セットアップ時に、各プログラムがテーブルを作成するようにしています。