3B 例題:SQLフォーム
PHPで利用できるデータベースI/F ( PEAR::DB や PDO ) の説明をするに当たり1つの例題を提供しようと思います。 この例題は筆者の運営するWikiサイト( Groud-Sunlight ) からの転用です。
無料で揃える開発環境:MySQL4.1/8.Active PerlでのMySQLの利用 --- groud-sunlight
データベースのプログラミングは、どのような言語を使う場合でも、抽象化されたクラスを使うのが今流です。 groud-sunlight の例題はPerlで標準的なデータベース抽象化レイアである DBI を使っています。 PEAR::DB の抽象化は DBI と非常によく似ています。PEAR::DB のC++化である PDO にしても同じです。 従って、Perl DBI の経験者は違和感なく PEAR::DB や PDO を習得できると思います。
本編では、groud-sunlightの例題にフォームによるSQLスクリプトの入力機能を付けより使い易くしました。 この例題 (SQLフォーム)は非常に簡単なプログラムですが、異なったデータベース ( MySQL/SQLite/Access ) や、 異なったデータベースI/F ( PEAR::DB/PDO/Perl DBI ) を比較検討する場合、結構役に立つと思います。
3B.1 SQLフォームの概観
SQLフォームは3つのプログラムで構成されます。
- sqlform.php --- メインウインドウの表示とSQLスクリプトの編集を行います
- sqlsave.php --- SQLスクリプトの保存と削除を行います
- sqlexec_*.* --- SQLスクリプトの実行プログラムです。データベースI/F毎に名前が異なります。
※ 例えば、PEAR::DBの場合はsqlexec_pdp.phpになります。
メインプログラムは sqlform.php です。sqlform.php は以下のメインウインドウを表示します。
メインウインドウ

メインウインドウは3つの部分(スクリプト編集エリア(上図左)、スクリプトファイル選択エリア(上右)、スクリプト実行エリア(下))で構成されています。 以下に各エリアの説明をします。
スクリプト編集 エリア

| 項目 | 説明 |
|---|---|
| [ SQL編集ボックス ] | SQLスクリプトの編集はここで行います。 |
| [ 実行 ] | 編集しているSQLスクリプトを実行します。 |
| [ データベースI/F ] |
データベースI/F毎に実行プログラムを指定できます。 ※ 設定は環境設定ファイル( sql.ini.php ) で行います。 |
| [ DSN ] |
DSN(Data Source Name) を指定してデータベースの接続先を変更できます。 ※ 設定は環境設定ファイル( sql.ini.php ) で行います。 |
| [ 削除 ] | 編集中のSQLファイルを削除します。 |
| [ 名前を付けて保存 ] |
編集中のSQLファイルを名前を付けて保存します。 ※ 保存先のディレクトリは環境設定ファイル( sql.ini.php ) で指定します。 |
| [ 保存 ] | 編集中のSQLファイルを上書き保存します。 |
スクリプトファイル選択 エリア

| 項目 | 説明 |
|---|---|
| [ SQL Filess ] | SQLファイルをクリックするとそのファイル開き、SQL編集ボックスに表示します。 |
| [ 新規 ] | SQL編集ボックスをクリアし、SQLスクリプトを新規にします。 |
スクリプト実行 エリア

SQLスクリプトの実行はこのエリアで行われます。 SQLフォームは編集エリアで入力されたテキストをSQL実行プログラムに送信します。 このエリアの実行結果はSQL実行プログラムが表示しています。 このプログラムは最後のSQLの実行に要した時間を表示します。
