この章では、情報をデータベースに保存し、それを Web ページに表示する方法を学びます。これまでに、リレーショナル データベース エンジンである MySQL とサーバーサイド スクリプト言語である PHP をインストールし、それらに関する基本的な知識を学びました。この章を学習すると、これら 2 つの新しいツールを使用してデータベース主導の Web サイトを構築する方法が理解できるようになります。
前のパートの復習
次に進む前に、学習の目的を復習することが重要です。私たちのシステムには、スクリプト言語 PHP とデータベース エンジン MySQL という 2 つの強力な新しいツールが導入されました。この 2 つがどのように連携するかを理解することが重要です。
データベース駆動型 Web サイトの本質は、サイトのコンテンツをデータベース内に存在させ、このデータベースを通じて Web ページを動的に生成し、訪問者が標準の Web ブラウザを通じて Web ページを表示できるようにすることです。したがって、システムの一端にはブラウザがあり、サイトにアクセスすると、HTTP://WWW.YOURSITE.COM にアクセスして標準の HTML 形式の Web ページを取得し、それを Web ブラウザに表示します。システムの反対側には、SQL クエリ (コマンド) への応答方法のみを理解する MySQL データベース内の 1 つまたは複数のデータ テーブルにサイトのコンテンツが保存されています。
PHP スクリプト言語は、この 2 つの間の連携の役割を果たします。PHP を使用すると、サイトの外観 (画像やページのデザインを含む) を決定することができます。この時点で、コンテンツはこの「テンプレート」に属します。PHP コードを使用して MySQL データベースに接続し、SQL クエリを使用してデータを取得し、対応する場所に表示できます。ここで使用した SQL クエリは同じです。第 2 章の ジョークデータテーブルを作成する場合も同様です。
これで、訪問者がデータベース駆動型 Web サイトのページにアクセスしたときに正確に何が起こるかを明確に理解できるはずです。
訪問者の Web ブラウザは、標準 URL を使用してページをリクエストします。
Web サーバー ソフトウェア (Apache、IIS など) は、要求されたページが PHP スクリプトであることを認識し、ページ要求に応答する前に PHP プラグインを使用してそれを解釈します。
一部の PHP コマンド (まだ学習していません) は、MySQL データベースに接続し、この Web ページに属するコンテンツをデータベースにリクエストします。
MySQL データベースが応答し、要求されたコンテンツを PHP スクリプトに送信します。
PHP スクリプトは、コンテンツを 1 つまたは複数の PHP 変数に保存し、使い慣れた echo 関数を使用して Web ページの一部として出力します。
PHP プラグインは処理を完了し、結果の HTML のコピーを Web サーバーに返します。
Web サーバーは、この HTML コピーを Web ブラウザーに送信します。この HTML コピーは、HTML ファイルから直接取得されるのではなく、PHP プラグインによって提供される出力から取得される点を除き、標準の HTML ファイルになります。
PHP を使用した MySQL への接続
Web ページに含まれるコンテンツを MySQL データベースから取得する前に、まず MySQL への接続を確立する方法を知る必要があります。第 2 章では、mysql というプログラムを使用してこのような接続を作成しました。 PHP ではそのようなプログラムは必要ありません。MySQL への接続のサポートは言語に組み込まれています。次の関数は、そのような接続を確立するために使用されますサービス ソフトウェアが実行されているコンピュータの IP アドレスまたはホスト名 (Web サービス ソフトウェアを実行しているコンピュータと同じコンピュータの場合は、「localhost」を使用できます)、 および この章で MySQL サーバーに接続するために使用するパスワード。
PHP の関数は呼び出されたときに値を返す (出力する) 傾向があることを覚えているかもしれません。思い出させたわけではないので心配しないでください。初めて機能に触れたときに詳しく説明します。ほとんどの関数は、呼び出された後、次回使用するために変数に保存できる値を返します。たとえば、上で紹介した mysql_connect 関数は、確立された接続を識別する番号を返します。この接続を使用するので、この値を保存する必要があります。以下は MySQL データベースに接続する方法の例です:
MySQL サーバーによっては、上記の関数の 3 つのパラメーターの値が異なる場合があります。ここで、mysql_connect が値 (接続識別子と呼びます) を返し、それを変数 $dbcnx に格納していることに注目してください。