logo

パレット - カラフルに🎨

Palette — ビジュアルページビルダー、デザインの専門知識は不要です。

ライブデモ パレットをダウンロード

Scroll

PHP レッスン — レッスン 3.1 — MySQL DB の操作。テーブルの作成。

08/12/2019, by Ivan

前のレッスンでは、データベースとの接続を作りました。このレッスンでは、将来のサイト用のテーブルを作ります。まず、必要な DB の名前を simpleCMS クラスに追加しましょう:

class simpleCMS {  // 管理クラス

  public $host = 'localhost'; // DB を扱うための変数
  public $username = 'root';
  public $password = '';
  public $db = 'testDB';

次に、この DB を MySQL サーバー上に作成する必要があります。あなたも Denwer を使っているなら、そのために phpMyAdmin があります。Denwer に含まれています。このリンクから phpMyAdmin に入り、新しい DB を作成してください:

PhpMyAdmin

設定を記述し、新しい 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 テーブルが作成されます。

このテーブルは次のレッスンで使います。質問やエラーがあれば、コメントに残してください。