第4回 PerlでMySQL操作CGIを作ろう
いよいよ本連載のかなめであるデータベースアプリケーション・プログラミングについて解説するときがきた。まず手始めとして、PerlでMySQLを操作する方法を紹介する。Perlを使う際のポイントは、Perl用汎用データベースAPIであるDBIのマスターにある。
鶴長 鎮一
MySQLユーザ会
2001/3/6
Perlは、いまやスクリプト言語の代表格として、とりわけWebアプリケーションで利用されています。また、その手軽さから些細な用を済ませるための使い捨てスクリプトをPerlで作る方も多いようです。昔はshスクリプト、いまはPerlといったところでしょうか。このPerlが持つ強力な文字列処理とデータベースが連携できれば、さらに強力なスクリプト言語になります。
DB用モジュールのインストール
第3回の次回予告で紹介したファイルのインストールはお済みでしょうか? おさらいすると、PerlでMySQLを利用するには以下のファイルが必要になります。
- perl 5.00503 (ほとんどのLinuxディストリビューションでは標準だと思います)
- DBD/DBIモジュール
http://www.perl.com/CPAN-local/modules/by-module/DBI/ - MySQLモジュール
http://www.mysql.com/Downloads/Contrib/ - Data-ShowTable
http://www.perl.com/CPAN-local/modules/by-module/Data/
■DBD/DBIモジュールとData-ShowTableのインストール
DBD/DBIモジュールとData-ShowTableは、一般的なLinuxディストリビューションならばすでにインストールされている可能性があります。
$ rpm -qa | grep perl |
でインストールされているか確認しましょう。インストールされていない場合は、インストールCDまたは各ディストリビュータのサイトからパッケージを取得することもできますが、ここではソースからインストールする手順を説明します。
上記のサイトから、現時点での最新版であるDBI-1.14.tar.gzとData-ShowTable-3.3.tar.gzをダウンロードして、適当な作業ディレクトリで展開します。
$ tar XXXX.tar.gz |
後はREADMEに書かれているとおりに進めます。
$ perl Makefile.PL |
(注)“$”は一般ユーザー、“#”はスーパーユーザーのプロンプトです。
| ■コラム DBI/DBDとは |
| データベースが変わるたびに新しいやり方を覚えるのでは効率が上がりません。しかし、データベースが変わっても同じ方法でプログラムできれば作業が効率化します。Windowsにはそれを実現する手段としてODBCがあり、Javaの場合にはJDBCがあります。Perlも、DBI/DBDを使うことで、それが実現できます。
DBIはデータベース非依存の機能や変数を提供するAPIです。その非依存性を実現するためにDBIの下層にDBDがあり、それぞれのデータベースと連携する低レベル処理を行っています。例えば、今回取り上げているPerlスクリプトをMySQLではなくPostgreSQLとの連携に変更したい場合は、 $db = DBI->connect('DBI:mysql:データベース名:サーバ名', ユーザー名, パスワード); を $db = DBI->connect('DBI:Pg:データベース名', ユーザー名, パスワード); のように置き換えるだけです。もちろんPostgreSQL用のDBDがインストールされている必要があります。 なお、今回紹介しているDBIのメソッドはごく一部にすぎない。ほかのメソッドについては、 http://member.nifty.ne.jp/hippo2000/perltips/dbimemo.htm を参照していただきたい。 |
■MySQLモジュールのインストール
http://www.mysql.com/Downloads/Contrib/から、現時点での最新版であるMsql-Mysql-modules-1.2215.tar.gzをダウンロードし、展開します。
$ tar xvfz Msql-Mysql-modules-1.2215.tar.gz |
次にMakefile.PLスクリプトを実行します。
$ perl Makefile.PL |
ここで少し質問に答える必要があります。
Which drivers do you want to install? |
ここでは1を選択してください。後の質問には[Enter]キーを押してデフォルトの値を使用します。質問が終了したらインストールのための最後の処理を行うのですが、“make test”でローカルサーバへの接続テストを行うのであらかじめMySQLを立ち上げておきましょう。そして、
$ make |
を行えば必要なプログラムのインストールは完了です。
|
1/4
|
| Index | |
| 快速MySQLでデータベースアプリ! | |
| DB用モジュールのインストール DBD/DBIモジュールとData-ShowTableのインストール MySQLモジュールのインストール |
|
| PerlによるDBプログラミング DB接続・登録・切断のコーディング スクリプトでデータ抽出 |
|
| CGIでWeb-DBアプリ化 | |
| 次回予告 | |
| Appendix | |
| 連載 快速MySQLでデータベースアプリ! |
| Linux Squareフォーラム データベース関連記事 |
| 連載:快速MySQLでデータベースアプリ!(全11回) 軽快な動作で知られるRDBMS、MySQLでDBアプリの構築を行う。MySQLのインストールに始まり、PerlやRubyなどのスクリプトでデータベースを操作する方法までを完全解説 |
|
| 連載:今から始める MySQL入門(連載中) 定番のLAMP(Linux+Apache+MySQL+PHP)構成でWebアプリケーション開発に挑戦! サンプルアプリの構築を進めながら、基礎知識や操作方法について詳しく解説する |
|
| 連載:Oracleマイスター養成講座(全6回) 本連載では、Oracleの管理・チューニング方法を紹介していく。これからOracleを始める人、そしてOracleをより深く理解したい人のための、一歩踏み込んだ実用講座 |
|
| 連載:DB2マイスター養成講座(全7回) 本連載では、DB2 UDBの実践的な運用・管理方法を紹介していく。DB2を利用するうえで必要な知識を、実運用を前提にDB2のプロが解説 |
|
| 特集:エンタープライズ市場に向かうMySQL
5.0[前編] MySQL 5.0の新機能をアルファ版でチェック 1月に公開された5.0アルファ版は大幅に拡張されており、エンタープライズ市場への進出を予感させる |
|
| 特集:Linuxで動くリレーショナルデータベース・カタログ データベースサーバのOSとしてLinuxを採用するケースが増えている。Linuxで動作する7つの主なリレーショナルデータベースを紹介する。製品導入の際の参考にしてほしい |
|
|
TechTargetジャパン
- 新しい記事も入っていて安心しました (2012/2/7)
Linux Squareのアクセスランキングを公開します。定番の記事ばかりでなく、連載中の記事もよろしくお願いいたします - エラーメッセージをどう扱うか? (2012/2/2)
今回は、スクリプト実行時にエラーが発生したことを知らせるメッセージの扱い方を説明します - ファイルのアップロードを制限する (2012/1/30)
HTTPクライアントがアップロードしてくるファイルの扱いについて解説します。そもそも受け入れる必要があるのか? ということのほかにも、いろいろ設定が必要です - OSに付属するシェルスクリプトを読んで技術を盗む (2012/1/27)
シェルスクリプトマスターに近づくには、他人から技術を盗まなければならない。OS付属のスクリプトから技術を盗もう
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -
