インターネットが急速に発展し、ECサイトが次々と誕生する現在、Webサイト制作の効率化と品質に対する要求はますます高まっています。
複雑な構造と膨大なコンテンツを持つ大規模なウェブサイトの場合、動的で便利なウェブサイトの管理を実現する必要があります。データ管理はデータベース システムのサポートから切り離せません。 CGI 言語を測定する重要な指標は、バックエンド データベースへのアクセス能力、効率などです。
現在人気のある PHP スクリプト言語の新機能は、私たちに新しい感覚をもたらします。オブジェクト指向の設計と開発をサポートします。同時に、Web ページ固有のニーズを満たすために、テンプレート、XML サポートなどが Web サイト開発の新しい方法をもたらすために使用されてきました。言語構造の点では、PHP は C++ 言語に似た構造を持ち、開発を簡素化するためにクラスの概念が導入されています。
PHPには強力なデータベースサポート機能もあります。ここでは例を使用して、まず PHP がデータベースにアクセスする一般的なプロセスを紹介し、次にファイルのデータベース ストレージを通じてデータベースにアクセスする PHP の高度なアプリケーションを紹介します。最後に、データベースクラスの使用例を通して、真に実践的で効率的なデータベース開発方法を紹介します。
図1
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,
Intro varchar(255),
ResuFile longblob,
PRIMARY KEY (ID),
KEY ID (ID)
);
My の実行ディレクトリ /usr/local/mysql/bin に置き、次のコマンドを実行します:
./mysql-u root-p パスワードを入力してください:
データベースのパスワードを入力すると、テーブル Resume が自動的に正常に作成されます。このうち、ResuFile フィールドは longbolb 型であり、バイナリ Word 文書を格納するために使用されます。
2. データベースアクセスプロセス
PHPのデータベースへのアクセスには、通常、データベースシステムに接続→データベースを選択→SQLステートメントを実行→結果セットを閉じる→データベース接続を閉じる→終了という手順が含まれます。
(1) データベースへの接続
データベースへの接続は、ユーザープログラムからデータベースシステムへの対話チャネルを確立するプロセスです。 MySQL データベースに接続するステートメントは次のとおりです:
?
$LinkID=@mysql_connect("localhost", "root" , "") または die("データベースサーバーに接続できません! データベースサーバーが起動していない可能性があります、またはユーザー名とパスワードが有効ではありません エラー! ");
このうち、mysql_connect()関数はデータベースサーバーとの接続を確立するために使用されます。 3 つのパラメータは、データベース サーバーのホスト名 (IP も可能)、データベース ユーザー名、およびユーザー パスワードです。関数の戻り値は、このデータベース接続を表すために使用されます。
このコマンドからもわかるように、データベースサーバーとしてローカルマシンではないマシン名を指定することができます。これにより、データをオフサイトに保管し、データベースを安全に分離することが可能になります。外部ユーザーは、多くの場合、WWW サーバーへの直接アクセス権を持っています。データベース システムが WWW サーバー上に直接配置されている場合、セキュリティ上のリスクが生じる可能性があります。また、データベース システムがファイアウォールの背後にあるコンピュータ上に配置されている場合、PHP は LAN 経由でデータベースにアクセスでき、LAN 内のコンピュータは外部からは見えません。このようにして、データベースは外部攻撃から保護されます。
関数の前の「@」記号は、このコマンドのエラー情報の表示を制限するために使用されます。関数呼び出しでエラーが発生した場合は、またはに続くステートメントが実行されます。 die() 関数は、引用符で囲まれた内容をユーザーに出力した後、プログラムが実行を終了することを意味します。これは、データベース接続エラーが発生したときにユーザーに説明のつかない専門用語が大量に表示されるのを防ぎ、代わりにカスタマイズされたエラー メッセージを表示するために行われます。ただし、デバッグ時にエラー メッセージをブロックすることはできず、エラーが発生した後に問題がどこにあるのかを特定することができません。
(2) データベースの選択
データベースシステムには複数のデータベースを含めることができます。データベース サーバーとの接続を確立した後、どのデータベースを使用するかをシステムに伝える必要があります。データベースを選択するコマンドは次のとおりです:
?
@mysql_select_db("ResumeDB",$LinkID) または die("データベースの選択エラー、指定したデータベースが存在しない可能性があります!");データベースを指定する必要があります。パラメータはデータベースの名前とサーバー接続番号です。
データベースサーバーを1つだけ使用する場合、$LinkIDは省略でき、システムは自動的に最も近いデータベース接続を見つけて使用します。ただし、大規模なサイトを実装する場合は、マルチホストおよびマルチデータベース システムに遭遇する必要があります。このとき、データベース接続パラメータは省略できません。
(3) データベースアクセス
データベースへの接続を確立し、データベースを選択しました。次は SQL ステートメントを実行します。 SQL ステートメントの使いやすく強力な機能により、ほとんどのデータベース操作が完了します。
まず個人情報レコードをデータベースに書き込んでから、それを表示することができます。
?
$Name= "OpenBall"; //実際の動作では、$Nameと$Introはブラウザフォームから渡される値です
$Intro = "OpenBallのプロフィール..."; 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($query,$LinkID); //実行、結果セットを保存します。 to 変数 $result
$num= mysql_num_rows($result); //クエリによって返されるレコードの行数を取得します
if($num == 0)
{
echo "レコードが見つかりません"
exit();
}
while($row=mysql_fetch_array($result)) //結果セットのデータの次の行を配列に取得します $row
{
Echo $row["ID"]." ".$row["名前"] "。" 1 回目は挿入操作、2 回目はクエリ操作です。プログラムはまず現在のユーザーの 1 日の記録を挿入し、次にデータベース内のすべての個人情報を表示します。
(4) リソースの解放
操作の終了時に、結果セット、結果セット、データベース接続リソースが解放されます。
?
@mysql_free_result($result);
@mysql_close($LinkID);
複数のWebページでデータベースへのアクセスが頻繁に必要な場合は、データベースサーバーとの継続的な接続を確立して効率を高めることができます。データベース サーバーへの各接続には時間がかかり、大きなリソース オーバーヘッドが必要となるため、継続的に接続する方が比較的効率的です。
継続的な接続を確立する方法は、データベースに接続するときに mysql_connect() の代わりに関数 mysql_pconnect() を呼び出すことです。確立された永続接続は、このプログラムの終了時に mysql_close() を呼び出して閉じる必要はありません。次回プログラムがここで mysql_pconnect() を実行すると、システムは実際にデータベースに接続せずに、確立された継続的接続の ID 番号を自動的に直接返します。
以上、ios8の14の新機能とPHPスクリプトデータベース機能の詳しい解説(前編)を紹介しましたが、ios8の14の新機能も含めて、PHPチュートリアルに興味のある友人の参考になれば幸いです。