PHP レッスン — レッスン 3.1 — MySQL DB の操作。テーブルの作成。
前のレッスンでは、データベースとの接続を作りました。このレッスンでは、将来のサイト用のテーブルを作ります。まず、必要な DB の名前を simpleCMS クラスに追加しましょう:
class simpleCMS { // 管理クラス
public $host = 'localhost'; // DB を扱うための変数
public $username = 'root';
public $password = '';
public $db = 'testDB';
次に、この DB を MySQL サーバー上に作成する必要があります。あなたも Denwer を使っているなら、そのために phpMyAdmin があります。Denwer に含まれています。このリンクから phpMyAdmin に入り、新しい DB を作成してください:

設定を記述し、新しい DB を作りました。では、PHP を通じた MySQL サーバーとの接続を調整しましょう。DB との接続メソッドを変更します:
public function connectDB() {
$link = mysql_connect($this->host, $this->username, $this->password); // MySQL サーバーに接続する
if (!$link) {
die('接続エラー: ' . mysql_error());
}
mysql_select_db($this->db) or die("DB が見つかりません。 " . mysql_error()); // DB を選択する
return $link;
}
すべてうまくいけば、どのメッセージも出力されないはずです。では、テーブルを作りましょう。そのために buildDB() メソッドを追加し、クラス内の connectDB() メソッドで直接呼び出します。
public function connectDB() {
$link = mysql_connect($this->host, $this->username, $this->password); // MySQL サーバーに接続する
if (!$link) {
die('接続エラー: ' . mysql_error());
}
mysql_select_db($this->db) or die("DB が見つかりません。 " . mysql_error()); // DB を選択する
$this->buildDB(); // このように、同じクラスの別のメソッド内でメソッドを呼び出す
return $link;
}
public function buildDB(){
}
これで、接続のたびに buildDB() メソッドで、すべてのテーブルが揃っているか確認できます。そのために DB へクエリを送ります:
public function buildDB(){
$sql = 'CREATE TABLE IF NOT EXISTS messages (
title VARCHAR(150),
bodytext TEXT,
created VARCHAR(100)
)';
return mysql_query($sql);
}
では、これがどう動作するか見てみましょう。
まず SQL クエリを文字列変数に記録し、その後、この文字列変数を、DB へクエリを送る mysql_query 関数に渡します。
私たちの sql クエリは CREATE TABLE 演算子、つまりテーブルの作成から始まります。次に、このテーブル、すなわち messages テーブルがすでにあるかどうかを確認します。
テーブル名の後の括弧の中に、テーブルと一緒に作成されるこのテーブルのフィールドが来ます。私たちの場合は title、bodytext、created のフィールドです。各フィールド名の後に、そのフィールドのデータ型の記述が来ます。VARCHAR(150) は最大 150 文字の文字列、TEXT は記事全体を保存できるテキストフィールドです。
これで、simpleCMS.php ファイルを保存して index.php を実行すると、そうして messages テーブルが作成されます。
このテーブルは次のレッスンで使います。質問やエラーがあれば、コメントに残してください。