日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
文字サイズ変更:
トップページ > Perlについて
●Perlについて●
2022-11-18 23:06:58Perl:DBI no.01
DBIとは
DBIは、Perlのモジュールでデータベースにアクセスするためのものです。
DBIは、Perl用データベース独立インターフェースのことです。
データベースにアクセスしたら、情報の登録、抽出、上書き、削除などが行えます。
では、細かく説明したいと思います。
** DBIでの接続(connect) **
DBIを、読み込みます。
「use DBI;」と書きます。
それから、DBIを使ってID、PASSWORDを設定して接続を行います。
my $data_source = "dbi:mysql:database=user_db;host=Localhost;port=3306";
my $username = "username";
my $password = "password";
my $dbh = DBI->connect($data_source,$username,$password,{mysql_enable_utf8 => 1}) or die $DBI::errstr;
$dbhとは、データベースハンドルのことです。
$data_sourceは、データベースに接続する設定をします。
接続のためのデータベース名、ホスト名、ポート番号、プロトコルなどを設定します。
$usernameは、データベースへの接続で使用するユーザー IDです。
$passwordは、データベースへの接続で使用するユーザー ID のパスワードです。
他に、オプションを加えていきます。
mysqlであれば
mysql_enable_utf8 => 1
と書き加えることができます。
そして、「die $DBI::errstr」でエラーを捕捉します。
一般に、データベースの接続は、短ければ短いほどいいとされています。
** DBIでの切断(disconnect) **
データベ-スへのアクセスは、データの抽出や加工を加えたあと、切断する必要があります。
$dbh->disconnect;
** DBIでのデータの抽出(SELECT) **
データベースに接続したら、データを抽出します。
それは主にSQL文を発行します。
SQL文とは、ここでは「SELECT」で始まる文のことです。
SQL文には、Oracle、DB2、PostgreSQL、MySQLなど何種類か存在します。
ここではMySQLで説明したいと思います。
my $sth = $dbh->prepare(qq{ SELECT * FROM blog WHERE ca_nm = '$category_name' });
$sth->excute;
my %row;
my $i = 0;
while (my $ary_ref = $sth->fetchrow_arrayref){
($row{"blogid_$i"},$row{"ca_nm_$i"},$row{"title_$i"},$row{"kizi_$i"}) = @$ary_ref;
$i++;
}
$sth->finish;
SELECT文は、以下のように発行します。
SELECT カラム名 FROM テーブル名 WHILE 抽出条件;
「*」のアスタリスクは、すべてのカラムを抽出します。
$sthはステートメントハンドルの事です。
WHERE句の条件で、カラムが文字列型の場合は’’(シングルクォーテーション)で囲います。
数値型の場合は要りません。
「execute」は、実行する、という意味です。
SQL文の実行後、「$sth->fetchrow_arrayref」で、データを抽出していきます。
この場合は、「ブログID」、「カテゴリ名」、「ブログタイトル」、「ブログ記事」を抽出しています。
他に、登録(INSERT)、上書き(UPDATE)、削除(DELETE)など、抽出(SELECT)を加えた
4種類を覚えればかなり使えるようになると思います。
※編集上、全角にしている部分があります。
※コピペする場合は、気をつけてくださいね。
出典「IBM Perl でのデータベース接続」
出典「DBI->connect 時に使う鉄板オプションを教えて!」
Print
Twitter(test)
short URL
いいね:78 back to the TOP |