データベースの例
この例では、PerlのDBIモジュールの基本的な使用方法を示します。データベースは電子メールで参加するために'ペンパル'ベースのサービスを望む人々のレコードが含まれます。加入者のメールアドレスを提供する、いくつかの限られた個人情報および個人の利益は約100可能なトピックの事前定義セットから選ばれた設定します。検索はいくつかの共通の利害を共有する他の加入者は、行うことができますし、他の制約を満たしています。データベースの1つのテーブルを持って、行は、この'電子パルのサービス加入者の特徴、各加入者の電子メールアドレスを持って(簡単にするため仮定に合うように32文字のフィールド)に、このユニークでなければならないと、主キーとして機能します。加入者は通常、男性や女性が、自分の性別を指定しないように選択することができます(その場合は、'に分類されるとして自身を識別する電子メール名')。チャンネル登録者(男性を指定し、女性の相手にも対応するようにしたい人のタイプの制限を指定することができます電子メール又は任意)。単純化のため、加入者の利益の5つの整数値フィールドを使用して表されます。テーブルには次の定義があります: のCREATE TABLE EPAL(メールデータ型はvarchar(32)NOT NULLを、型はvarchar(8)NOT NULLを、(8)NOT NULLを、interest1番号(4)、interest2番号(4)、interest3番号(4)、interest4番号varchar型を(4 )、interest5番号(4)、制約id_pkeyのPRIMARY KEY(Eメール)は、制約type_check空(タイプ('男性'、'女性'、'EPERSON'))、制約want_check空(('男性'、'女性にしたい'、'EPERSON'、'任意'))); 'チェック'制約は特に重要ではない場合、そのような制約をサポートしていません使用するデータベースを、本質的にこれらのチェックは重複するプログラムコードのサンプルプログラムは、キーボードから、スタンドアロンのPerlプログラムのデータを読み取ると直接作業を省略することができますデータベースです。コマンドは、データベースまたはレコードを追加する検索を実行するプログラムを指定することができます。コード可データはHTMLフォームに入力したCGIスクリプトをフォームに適応させることが、これは、Webベースの電子パルサービス-何かいうよりは、このスタンドアロンバージョンよりも有用な結果だ。非常に類似した入力データのレコードの追加とが必要ですを検索します。ユーザーは、誰とも対応するようにしたい人の'型'は、定義済みの利益のリストから5つの利益を選択する必要があります場合は、記録されると、入力データには電子メールを含める必要が追加される型'を自分たち自身を入力する必要があります住所。検索に成功したマッチのための基準があります: レコード内の'の値の型''の要求の要件を満たす-オーバーライドとは、要求'=任意の'タイプフィールド内の任意の値に一致します。 '型'は、検索リクエストに指定された'レコード内の所定の要件を満たす-もう一度'は'可能なすべてのリクエストタイプを一致されています。利益の2つのセット(利益の範囲を100から100までの数値として表現され、彼らは必ずしも指示されていません)は、非ゼロ交差している。これらの一致条件をSQLの選択条件として表現することは困難であること、すべてのレコードを取得するために、プログラムの基準を適用するプログラムが簡単です。このプログラムは、グローバル変数の番号を使用し、各サブルーチンのローカル変数にしています。プログラムのやや大きいサイズのエラーの変数の暗黙の宣言、または未初期化変数の使用から生じるの使用のリスクが高まります。このように、すべての変数を宣言する必要があるPerlインタプリタのモードを変更する価値はあります。プログラムの開始時には、ディレクティブ'を使用し厳格な'指定すると、この変更になります。 メインラインには、データベース接続とテーブルをセットアップを作成し、初期化ルーチンを呼び出します。 main関数をユーザが入力したコマンドは、'メニュー'を選択し、ループ処理をしています。コマンド'add'をアール処理、'検索'、'list'の興味のリスト(リストの内容)と'を終了します。コードです: 初期化;ながら、(1)(私の$ CMDの; print"コマンドを入力します(、検索リスト(利益)、終了)を追加します:"; $ CMDの= 初期化ルーチンは、マップの関心トピック識別子numberのハッシュを作成します。ユーザーは自分の利益を入力する必要がありますし、それらをチェックして、ここでは、ハッシュは、元のリストよりも高速な検索システムとして機能します。初期化ルーチンの他のタスクは、データベース接続の両方で簡単なSQLの選択クエリとは、レコードを入力するために使用される複数パラメータ化された複雑なSQLステートメントの準備を開いています。挿入文8の値を'、'と5つの関心の識別子をする-電子メールアドレス、'型'バインドする必要があります。 サブ(私の($ idには、$金利)の初期化; $ IDを= 0;するforeach $関心interestlist()($ interesttable($興味)= $ IDを$ IDを+ +;)$曲h = DBIを、"@($ data_sourceに接続すると、 "HSimpson"、"ドーハ"、(AutoCommitを="1))| |ダイ"曲h - \ Nで"; $ searchHandle = $ dbに"("*選択してからepal"); $ insertHandle = $準備に接続できませんでした。曲h -"("に挿入epal値の準備(?、?、?、?、?、?、?、?)");) doAdd関数は、ユーザー入力を取得するための3つの単純なヘルパー関数(owntype、wanttype、getinterests)を使用します。 getinterests繰り返しデータに5つの利益を定義するまで、ユーザーのプロンプトが正しく入力されている関数は、それに対応するID番号を持つリストを返します。関数を実行するコール注:これは3つの明示的な引数、および5つの要素の関心の配列を指定します。これは、すべて-後の8つの引数のための要件と一致する場合は、Perlは、1つのリストにいずれにせよ、その後のすべての引数を組み合わせた関数の内部では、引数を分割します。 サブ= Eメールの欲望= wanttype; @利益= getinterests;"あなたのメールアドレスを印刷する:"; $(私の($は、$欲望、$、電子メール、利益@); $あなた= owntype $ doAdd 検索機能と同様(owntype、wanttypeとgetintersts)データは、サーチャー特徴付けるを取得するためのヘルパー関数を使用します。その後、SQL検索クエリを実行する:'epalテーブル'から選択するすべての。各レコードのリスト($ aにsearchHandleは読み取り専用です"fetchrow_array)。取得されたデータを前に'条件付きテストを、このコードで示されているデータを要求(一部-へのPerlの'異例に戻るのに対して)チェックされます。 記事は、マイケルBarrbay提出 免責事項:弊社のウェブサイトは、この資料の内容については責任を負いません。 Webarticles無料の情報リソースです。 重要: この記事は、"データベースの例は、"自動ソフトウェアによって翻訳された。大変申し訳ございませんが発生した可能性があります任意のスペルミスを感じている。お客様のご理解いただき、ありがとうございます。
|
|||||
| Online: 207 users browsing the articles directory |
|
|