スクリプト|データ|データベース|詳しい説明
インターネットが急速に発展し、ECサイトが次々と誕生する現在、Webサイト制作の効率化と品質に対する要求はますます高まっています。
複雑な構造と膨大なコンテンツを持つ大規模なウェブサイトの場合、ウェブサイトのダイナミクスと
便利な管理を実現する必要があります。データ管理はデータベース システムのサポートから切り離せません。 CGI 言語を測定するための重要な指標は、バックエンド データベースへのアクセス能力、効率などです。
現在人気のある PHP スクリプト言語の新機能は、私たちに新しい感覚をもたらします。オブジェクト指向の方法で設計と開発をサポートします。同時に、Web ページ固有のニーズを満たすために、テンプレート、XML サポートなどが、Web サイト開発の新しい
方法をもたらすために使用されています。言語構造の点では、PHP は C++ 言語に似た構造を持ち、開発を簡素化するためにクラスの概念が導入されています。
PHPには強力なデータベースサポート機能もあります。ここでは例を使用して、まず PHP がデータベースにアクセスする一般的なプロセスを紹介し、次にファイルのデータベース ストレージを通じてデータベースにアクセスする PHP の高度なアプリケーションを紹介します。最後に、データベース クラスの
使用例を通じて、真に実用的で効率的なデータベース開発方法を紹介します。
PHPデータベース関数の紹介
PHPは、Oracle、dBase、Informix、SQL Server、
Sysbase、MySQLなど、10を超える一般的なデータベースのサポートを提供します。データベースのサポートが充実しているからこそ、PHPの適用範囲が広がり、PHPを使ってさまざまなアプリケーションを開発できるようになりました。
さまざまなデータベースの中でも、MySQL は無料、クロスプラットフォーム、使いやすさ、アクセス効率の高さにより、優れた
アプリケーションを獲得しています。多くの中央 Web サイトでは、PHP + MySQL の最適な組み合わせが使用されています。
代表的な大規模データベースアプリケーションシステムはOracleです。設計する Web サイトに大量のデータがあり、高いパフォーマンスと効率性の要件がある場合は、Oracle が適しています。
Win32 プラットフォームでは、SQL Server がより大きな市場を占めています。 PHP は SQL Server にアクセスできます。
PHPはさまざまなデータベースへのアクセス方法をカプセル化しており、異なるデータベースシステムの機能も非常に似ているため、使いやすさが向上します。
以下では、簡単な人材情報交換センター(図1参照)を例に、履歴書のオンライン提出と閲覧機能をプログラミングして実装し、PHPデータベースの運用プロセス全体を説明します。データベースは最も一般的に使用されている MySQL データベースを使用します。
PHPデータベース操作の基本手順
ローカルマシン上にResumeDBという名前のデータベースを作成します データベース内にResumeという名前のテーブルがあります。このテーブルには、個人の履歴書番号、名前、個人プロフィール、および Word 形式の履歴書ファイルが保存されます。
1. データベースの作成
/usr/local/mysql/bin ディレクトリに切り替え、コマンドラインで次のステートメントを実行してデータベースを作成します:
./mysqladmin-u root-p create ResumeDB
パスワードを入力してください:
プロンプトが表示されたら、パスワードを入力します。データベースを初めて使用する場合、デフォルトのパスワードは空白なので、Enter キーを押してください。
次に、履歴書を保存するためのテーブルを作成します。
次の内容のテキストファイルResume.sqlを作成します:
use ResumeDB;
CREATE TABLE Resume (
ID tinyint(4) NOT NULL auto_increment,
Name varchar(10) NOT NULL,
イントロvarchar (255 ),
ResuFile longblob,
KEY ID(ID)
:
./mysql-u root-p
Enter Password:
データベースパスワードを入力すると、テーブルResumeは自動的に正常に作成されました。このうち、ResuFile フィールドは longbolb 型であり、バイナリ Word 文書を格納するために使用されます。
2. データベースアクセスプロセス
PHPのデータベースへのアクセスには通常、データベースシステムに接続→データベースを選択→SQLステートメントを実行→閉じる
結果セットを閉じる→データベース接続を閉じる→終了。
(1) データベースへの接続
データベースへの接続は、ユーザープログラムからデータベースシステムへの対話チャネルを確立するプロセスです。 MySQL データベースに接続するステートメントは次のとおりです:
?
$LinkID=@mysql_connect("localhost", "root" , "") または die("データベース サービス
サーバーに接続できません!が開始されていないか、ユーザー名とパスワードが間違っています! ");
?〉
このうち、mysql_connect() 関数はデータベース サーバーとの接続を確立するために使用されます。 3 つのパラメータは、データベース サーバーのホスト名 (IP も可能)、データベース ユーザー名、およびユーザー パスワードです。関数の戻り値は、このデータベース
接続を表すために使用されます。
このコマンドからわかるように、データベースサーバーとしてローカルマシンではないマシン名を指定することができます。このように、数字になります
これにより、データをオフサイトに保管し、データベースを安全に分離することが可能になります。多くの場合、外部ユーザーによる WWW サーバーへの直接アクセスは制限されています。データベース システムが WWW サーバー上に直接配置されている場合、セキュリティ リスクが生じる可能性があります。そして、データベースシステム
がファイアウォールの内側のコンピュータに配置されている場合、PHPはLAN経由でデータベースにアクセスでき、LAN内のコンピュータ
は外部からは見えません。このようにして、データベースは外部攻撃から保護されます。
関数の前の「@」記号は、このコマンドのエラーメッセージの表示を制限するために使用されます。関数呼び出しでエラーが発生した場合は、
or に続くステートメントが実行されます。 die() 関数は、引用符で囲まれた内容をユーザーに出力した後、プログラムが実行を終了することを意味します。これは、データベース接続エラーが発生したときにユーザーに説明の難しい専門用語が大量に表示されるのを防ぐために行われ、代わりにカスタマイズされたエラー メッセージが表示されます。ただし、デバッグ時に、エラーが発生した後に問題がどこにあるのかを見つけられないように、エラー メッセージをブロックすることはできません。
(2) データベースの選択
データベース システムには複数のデータベースを含めることができます。データベース サーバーとの接続を確立した後、どのデータベースを使用するかをシステムに伝える必要があります。データベースを選択するコマンドは次のとおりです:
@mysql_select_db("ResumeDB",$LinkID) または die("データベースの選択中にエラーが発生しました。指定したデータベースが存在しない可能性があります!");
データベースを選択するときに指定するパラメーターは、データベースの名前とサーバーの接続番号です。
データベースサーバーを1つだけ使用する場合、$LinkIDは省略でき、システムは自動的に最も近いデータベース
を見つけて接続し、それを使用します。ただし、大規模なサイトを実装する場合は、複数のホストと複数のデータベース システムが必要になります。このとき、データベース接続パラメータは省略できません。
(3)データベースアクセス
データベースへの接続を確立し、データベースを選択しました。次はSQL文
を実行します。 SQL ステートメントの使いやすく強力な機能により、ほとんどのデータベース操作が完了します。
まず個人情報レコードをデータベースに書き込んでから、それを表示することができます。
$Name= "OpenBall"; //実際の動作では、$Nameと$Introはブラウザフォームから渡される値です
$Intro = "OpenBallのプロフィール..."; query = "insert into Resume(Name,Intro)values('$Name', '$Intro')" //SQL
ステートメントを生成します
$result = @mysql_query("$query",$LinkID);
if(! $result) を実行
echo "データ挿入に失敗しました!";
$query= "select ID,Name,Intro from Resume" //SQL文を生成
$result = mysql_query, {
echo "レコードが見つかりません";
exit();
while($row=mysql_fetch_array($result)) // 結果セットから次のデータ行を配列 $row
{
echo $row["ID"]." ".$row["Name"]." ".$row["Intro"]."
"
//フィールドに基づいて配列変数にアクセスしますname Index Value
}
?〉
上記の操作では、合計 2 つのデータベース操作が実行されました。 1 回目は挿入操作、2 回目はクエリ操作です。プログラムはまず現在のユーザーの 1 日の記録を挿入し、次にすべてのデータベース内の個人情報を表示します。
(4) リソースの解放
操作の終了時に、結果セット、結果セット、データベース接続リソースが解放されます。
@mysql_free_result($result);
@mysql_close($LinkID)
改善するには、データベースサーバーとの接続を確立します。高効率。データベース サーバーへの各接続には時間がかかり、大きなリソース オーバーヘッドが必要となるため、継続的に接続する方が比較的効率的です。
継続的な接続を確立する方法は、データベースに接続するときに
mysql_connect()の代わりに関数mysql_pconnect()を呼び出すことです。確立された継続的接続は、このプログラムの終了時に mysql_close() を呼び出して閉じる必要はありません。次回プログラムがここで mysql_pconnect() を実行すると、システムは実際にデータベースに接続する代わりに、確立された継続的接続の ID 番号を自動的に直接返します。