Tips集DBIプログラミングPerlで、DBIモジュールを使って、データベースをアクセスするプログラムの作成方法についてまとめてあります。データベースは、PostgreSQLを使っています。DBI/DBDについてDBI/DBDモジュールは、Perlで各種データベースをアクセスするためのモジュールです。DBIモジュールは、データベースに依存しない処理モジュールで、DBDモジュールは、各データベース毎に依存する処理モジュールです。ここでは、PostgreSQLのDBDモジュールを使っています。データベースDBDモジュールの例としては、以下のものがあります。SQL-ServerなどのODBC対応データベースDBIメソッド一覧データベースにアクセスするためのDBIメソッドには以下の種類があります。DBIメソッドには、データベースハンドルメソッド(dbh)と、ステートメントハンドルメソッド(sth)があります。データベースハンドルメソッドconnectメソッドで接続したデータベースに関するメソッド$dbh->メソッド名();で呼び出すステートメントハンドルメソッドprepareコマンドで用意したSQL文に関するメソッド$sth->メソッド名();で呼び出すここでは、よく使われるメソッドのみまとめてあります。用意したSQL文を開放する詳細は、以下のコマンドで、英語版のドキュメントを参照してください。DBD::Pgエラーの参照方法DBIでは、直前のメソッドのエラーは、以下の方法で参照できます。$user_name);機能connectメソッドは、データベースに接続します。返却値として、データベースハンドル($dbh)が返ってきます。このデータベースハンドルは、データベースハンドルメソッドを使うときに必要です。データベースに依存する情報を以下の形式で設定します。DBDドライバ名は使用するドライバによって決められています。PostgreSQLのDBDドライバ名は、Pgとなります。データベース情報は、ドライバ毎に書式が異なります。PostgreSQLの場合は、以下のパラメータがあります。$dbh->prepare($statement);機能prepareメソッドは、SQL文($statement)を実行するための環境を用意します。SQL文は、perpreメソッドで用意し、executeメソッドで実行し、finishメソッドで終了します。返却値として、ステートメントハンドル($sth)が返ってきます。このステートメントハンドルは、ステートメントハンドルメソッドを使うときに必要です。$dbh->do($statement);機能doメソッドは、SQL文($statement)を実行します。内部的には、prepareし、executeし、finishしています。$dbh->selectall_arrayref($statement);機能selectall_arrayrefメソッドは、SQL文($statement)を実行し、全データを、配列の配列参照($ary_ref)として取り出します。$dbh->disconnect();機能disconnectメソッドは、接続しているデータベースを切り離します。$sth->execute();機能executeメソッドは、prepareメソッドで用意したSQL文を実行します。$rvには、処理した件数が返却されます。$sth->fetchrow_array();機能fetchrow_arrayメソッドは、行のデータを、項目の配列(@ary)として取り出します。$sth->fetchrow_arrayref();機能fetchrow_arrayrefメソッドは、行のデータを、項目の配列参照($ary_ref)として取り出します。finishメソッドは、prepareメソッドで用意したSQL文を開放します。info@ash.jp。