フリーPHPスクリプト配布サイト。
PHP Labo で配布しているプログラムには、データベースを使用するものがあります。データベースの概要についてはデータベースとはを参照してください。
利用できるデータベースはMySQLとSQLiteの2種類です。どちらを利用するかは、各プログラムに付属している設定ファイル(config.php)から指定することができます。
データベースの設定は以下の部分です。ただし、データベースを使用しないプログラムには、これらの設定項目はありません。(設定不要です。)
//データベースの種類(mysql ... MySQL / sqlite ... SQLite)
define('DATABASE_TYPE', 'mysql');
//接続先(SQLiteの場合は不要)
define('DATABASE_HOST', 'localhost');
//データベース名
define('DATABASE_NAME', 'phpdb');
//ユーザー名(SQLiteの場合は不要)
define('DATABASE_USER', 'root');
//パスワード(SQLiteの場合は不要)
define('DATABASE_PWD', '1234');
//記事格納テーブル名
define('DATABASE_TABLE_ARTICLE', 'blog_article');
次からは、それぞれのデータベースを利用する方法を紹介します。
設定するには、MySQLの「接続先(サーバー)」「データベース名」「ユーザー名」「パスワード」情報が必要になります。また、データベースはあらかじめ作成しておきます。
各情報の取得方法とデータベースの作成方法は、以下のページが参考になります。ロリポップ!とXREA以外のサーバーでも、同じような手順で取得できると思います。詳しくは、サーバーのサポートページなどを参照してください。
MySQLを利用する場合、「データベースの種類」は mysql と設定します。
//データベースの種類(mysql ... MySQL / sqlite ... SQLite)
define('DATABASE_TYPE', 'mysql');
MySQLに対応しているサーバーの場合、接続先は指定されているはずなので、そのとおりに設定します。例えば接続先が mysql.example.com の場合、以下のように設定します。
//接続先(SQLiteの場合は不要)
define('DATABASE_HOST', 'mysql.example.com');
サーバーによっては、データベース名が指定されている場合があります。その場合は指定されたデータベース名を設定してください。サーバーによっては、専用の画面から自分でデータベースを作成する場合もあります。作成方法はサーバーのサポートページなどを参照してください。
例えばデータベース名が SAMPLE の場合、以下のように設定します。
//データベース名
define('DATABASE_NAME', 'SAMPLE');
なお、データベースの文字コードは UTF-8(Unicode) に設定してください。
ユーザー名とパスワードは、FTPのユーザー名・パスワードのように、あらかじめ決められていることが多いようです。例えばユーザー名が SAMPLE でパスワードが Fyx7pwzb の場合、以下のように設定します。
//ユーザー名(SQLiteの場合は不要)
define('DATABASE_USER', 'SAMPLE');
//パスワード(SQLiteの場合は不要)
define('DATABASE_PWD', 'Fyx7pwzb');
それ以降はテーブル名の設定になります。プログラムによっては、複数のテーブルを扱うものもあります。
//記事格納テーブル名
define('DATABASE_TABLE_ARTICLE', 'blog_article');
テーブル名は基本的に変更する必要はありません。ただ、一つのデータベースで同じプログラムを複数設置する場合、テーブル名が重複してしまいます。また、他のプログラムで偶然同じテーブル名が利用されている可能性もあります。
その場合はテーブル名を別のものに変更してください。テーブル名は、半角英数字で適当な名前を付けることができます。
なお、テーブルはあらかじめ作成しておく必要はありません。セットアップ時に、各プログラムがテーブルを作成するようにしています。
SQLiteを利用する場合、「データベースの種類」は sqlite と設定します。
//データベースの種類(mysql ... MySQL / sqlite ... SQLite)
define('DATABASE_TYPE', 'sqlite');
SQLiteの場合、接続先・ユーザー名・パスワードの設定は不要です。以下の部分は特に変更する必要はありません。(空欄にしておいても大丈夫です。)
//接続先(SQLiteの場合は不要)
define('DATABASE_HOST', 'localhost');
//ユーザー名(SQLiteの場合は不要)
define('DATABASE_USER', 'root');
//パスワード(SQLiteの場合は不要)
define('DATABASE_PWD', '1234');
SQLiteの場合、データベース名はデータを記録するファイルの名前になります。設定例を挙げると、
//データベース名
define('DATABASE_NAME', './blog.db');
このように設定した場合、index.php と同じディレクトリ内に blog.db を作成し、パーミッションを 606 に設定します。(拡張子は db にしていますが、制限は無いので何でも大丈夫です。)
それ以降はテーブル名の設定になります。プログラムによっては、複数のテーブルを扱うものもあります。
//記事格納テーブル名
define('DATABASE_TABLE_ARTICLE', 'blog_article');
テーブル名は基本的に変更する必要はありませんが、必要なら半角英数字で適当な名前に変更することができます。
また、テーブルはあらかじめ作成しておく必要はありません。セットアップ時に、各プログラムがテーブルを作成するようにしています。