logo

パレット - カラフルに🎨

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

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

Scroll

PHP レッスン — レッスン 3 — MySQL DB の操作。

08/12/2019, by Ivan

3 つ目のレッスンをいきなり MySQL DB の操作から始めるのは早すぎると思うかもしれません。しかし、そうではないと信じてください。PHP を Web プログラミングの言語として学びながら DB の操作を学ばないのは、インターネットのないコンピューターを持つのと同じです。そのようなコンピューターで作業はできますが、情報をどこからも得られません。ですから、歯を食いしばって、たとえ SQL 言語について何も知らなくても、DB への SQL クエリを書き始めましょう。

SQL(Structured Query Language —「構造化問い合わせ言語」) — 表形式のデータベースでデータの作成・変更・管理に用いられる汎用のコンピューター言語です。SQL はテーブル内のレコードの計算に基づいています。

PHP は多くのデータベースを扱えます。MySQL、PostgreSQL、Oracle その他多数です。私たちは php と mysql の操作を学びます。この組み合わせはサイト作成で非常に人気だからです。しかも、MySQL の操作を学べば、将来ほかの DB も扱えるようになります。SQL は汎用の言語で、その構文はほとんどすべての表形式 DB で同じだからです。

MySQL自由なデータベース管理システム(DBMS)です。MySQL は Oracle Corporation 社の所有物で、同社は買収した Sun Microsystems とともにこれを取得し、アプリケーションの開発とサポートを行っています。GNU General Public License、または独自の商用ライセンスの下で配布されています。

SQL 自体については多くのレッスンがあります。ひとまず、DB をどう接続するかという簡単なことから始めましょう。そのために、simpleCMS クラスにもう 1 つメソッドを作ります:

  public function connectDB() {

  }

これにより、私たちのクラスのオブジェクトがすでにあるコードのどこからでも、DB との接続を呼び出せます。これはとても便利です。

また、MySQL サーバー、DB のユーザー、DB 名の変数も必要になります:

class simpleCMS {

  public $host = 'localhost';
  public $username = 'root';
  public $password = '';

これらの変数の定義を忘れた場合に備えて、デフォルトで定義しておきます。私は Denwer を使っているのでこのような MySQL の設定です。Denwer ではなく、ホスティングや自分のサイト用の専用サーバーを使っている場合は、自分の MySQL ユーザーを使ってください。

では、MySQL との接続を作るために mysql_connect() 関数を使いましょう。

  public function connectDB() {
	$link = mysql_connect($this->host, $this->username, $this->password);
	if (!$link) {
		die('接続エラー: ' . mysql_error());
	}
	return $link;
  }

では、mysql_connect() 関数がどう動作するか見てみましょう。まず、関数には 3 つのパラメーター、すなわち DB サーバー名、DB のユーザー、DB ユーザーのパスワードを渡す必要があります。次に die 関数が来ます。これは、接続が確立されなかった場合にエラーの出力が働くという意味です。変数 $this->host、$this->username、$this->password はクラスのプロパティへの参照です。私たちの場合デフォルトで設定されているので、すぐに渡され、connectDB() メソッドで定義しなくてもかまいません。

mysql_connect 関数は、ファイルの resource やフォルダの resource と同じ resource 型の接続変数 $link を返します。ですから、メモリを解放するために、作業終了後にこの接続を閉じる必要があります。接続成功のメッセージ出力は削除できます。

では、クラスファイルを接続した直後、index.php ファイルの一番最初でメソッドを呼び出しましょう:

$obj = new simpleCMS(); // 管理クラスのオブジェクトを作る
$db_connection = $obj->connectDB();

DB を接続する必要があるところではどこでも、私たちのクラスのファイルを接続し、オブジェクトを作り、次に DB への接続メソッドを呼び出します。ご覧のとおり、DB の操作に難しいことはありません。

接続を作ったのと同じように、作業終了後にはそれを閉じる必要があります。接続は mysql_close() 関数で閉じます。接続を閉じるためのメソッドをもう 1 つ作ることはしません(必要が生じたときには作る価値がありますが)。ですので、単にコードを追加します:

include_once('class/simpleCMS.php'); // クラスのファイルを接続する
$obj = new simpleCMS(); // 管理クラスのオブジェクトを作る
$db_connection = $obj->connectDB(); // 接続の作成

// 何らかの DB の操作

mysql_close($db_connection); // 接続を閉じる

分かりやすく説明できたと思います。次のレッスンでは、MySQL DB へのクエリを書いていきます。何か分からないことが残っていれば、コメントで教えてください。

Прикрепленные файлы