[Perl]DBI経由でMySQLに接続して、SELECT文でデータを取得するサンプルプログラム

PerlのプログラムからDBI経由でMySQLに接続し、SELECT文でデータを取得する処理のサンプルプログラムです。

あらかじめphpMyAdminを使用してMySQLにテータベース「testdb」を作成し、以下のSQLを実行しテーブル「users」を作成、3件のレコードを登録しておきます。

CREATE TABLE `users` (
  `userid` varchar(100) COLLATE utf8_bin NOT NULL,
  `password` varchar(250) COLLATE utf8_bin NOT NULL,
  `status` int(11) NOT NULL,
  `auth` int(11) NOT NULL,
  `username` varchar(250) COLLATE utf8_bin NOT NULL,
  `address` varchar(250) COLLATE utf8_bin NOT NULL,
  `mailaddr` varchar(100) COLLATE utf8_bin NOT NULL,
  `hpurl` varchar(250) COLLATE utf8_bin NOT NULL,
  `widgets` text COLLATE utf8_bin NOT NULL,
  `createdate` datetime NOT NULL,
  `lastupdate` datetime NOT NULL,
  PRIMARY KEY (`userid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

insert into `users` (`userid`,`password`,`status`,`auth`,
 `username`,`address`,`mailaddr`,`hpurl`,`widgets`,
 `createdate`,`lastupdate`)
  values('admin','1234','1','0','webmaster','',
  webmaster100@59log.com','http://59log.com/','',now(),now());
insert into `users` (`userid`,`password`,`status`,`auth`,
 `username`,`address`,`mailaddr`,`hpurl`,`widgets`,
 `createdate`,`lastupdate`)
  values('test1','5678','1','1','user 1','',
  'test1@59log.com','http://59log.com/','',now(),now());
insert into `users` (`userid`,`password`,`status`,`auth`,
 `username`,`address`,`mailaddr`,`hpurl`,`widgets`,
 `createdate`,`lastupdate`)
  values('test2','abcd','1','1','user 2','',
  'test2@59log.com','http://59log.com/','',now(),now());

以下のPerlプログラムでは、テーブル「users」からステータスが1のレコードを全て取得、一旦配列に格納してから標準出力に出力しています。

検索条件の設定にはプレースホルダを使用し、DB処理でエラーが発生した場合は、例外処理に飛んでエラーの内容が出力されるように、RaiseErrorに1を設定しています。

--- mysql_select.pl ---

#!/usr/bin/perl

use strict;
use warnings;

use DBI;

my $data_source = "DBI:mysql:testdb"; # 接続先はtestdb
my $username = "test"; # データベースへのアクセス権限を持つユーザーを指定
my $password = "abcd"; # そのパスワード

my $status = 1;
my @recs = ();
eval {
    my $dbh = DBI->connect($data_source, $username, $password,
                          {RaiseError => 1, PrintError => 0});
    my $sql  = "select * from users where status = ?";
    my $sth = $dbh->prepare($sql);
    $sth->execute($status);
    while (my @rec = $sth->fetchrow_array) {
        push @recs, [@rec];
    }
    $sth->finish;
    $dbh->disconnect;
};
if ($@) {
    print "Error : $@\n";
}

foreach my $rec (@recs) {
    print join(",", @{$rec}), "\n";
}
[2152] Posted by kagahiro at 2010/07/26 09:49:13
オープン | 0 point | Link (5) | Trackback (0) | Comment (0)

キーワード
Perl DBI MySQL サンプル プログラム

語句検索のホームページ


[Perl]DBI経由でMySQLに接続して、SELECT文でデータを取得するサンプルプログラム 関連リンク

PerlフレームワークCatalyst完全入門 山田祥寛
Perlで実装されたWebアプリケーションフレームワークである「Catalyst」の仕組みから、PerlMySQLのインストール、基本構文、ビュー/モデル/コントローラの開発、プラグインモジュールによる機能拡張、単体テストま...
Perl(パール)とは
Perl(パール)とは、Larry Wall(ラリー・ウォール)氏によってテキスト処理(テキストの検索や抽出やレポート作成など)のための言語として開発された、C言語に似た表記法のインタープリタ型のスクリプトプログラミ...
[Perl][MySQL]INSERT文でシングルクオートを含んだレコードを追加するには
PerlからDBIモジュールを使ってMySQLのテーブルにINSERT文でシングルクオートの含んだレコードを追加するには、次のようにprepare メソッドでプレースホルダを使ったステートメントハンドルを取得して、execute メソ...
[Perl]2次元配列のサンプルプログラム
C言語やC++なら2次元配列といっても配列の階層を増やすだけなので、わりと簡単に理解できるのですが、Perlはそこでリファレンスという、いまいちわかりにくいものが出てくるのでちょっと面倒です。とはいっても、2次...
PHPでMySQLに接続して、SELECTでデータを取得するサンプルプログラム
PHPのプログラムからMySQLに接続し、SELECTでデータを取得する処理のサンプルプログラムです。あらかじめphpMyAdminを使用してMySQLにテータベース「testdb」を作成し、以下のSQLを実行しテーブル「users」を作成、3...

[Perl]DBI経由でMySQLに接続して、SELECT文でデータを取得するサンプルプログラム トラックバック

トラックバックURL :


[Perl]DBI経由でMySQLに接続して、SELECT文でデータを取得するサンプルプログラムへのコメント


詳細の入力フィールドを表示する

おすすめ  (チェックしてコメントすると最新情報に掲載)
コメント :

< 前のスレッド      次のスレッド >

アクセスランキング

今日のアクセスランキング(上位10件)

  1. 掲示板フリーソフト - 無料で利用できる掲示板CGI (10 PV)
  2. PHP、MySQLで動くオープンソース掲示板ソフト (6 PV)
  3. 5ちゃんねる(5ch.net、旧2ちゃんねる)掲示板 (3 PV)
  4. [Twitter]ツイッター検索のまとめ (2 PV)
  5. アナログマとは (1 PV)
  6. 封印されしパー (1 PV)
  7. [遠隔操作ウイルス事件]警視庁がネット関連会社社員の片山祐輔容疑者を逮捕 (1 PV)
  8. 東京電力の社員がブログで説教「電気を使えるだけ幸せだと思え」 (1 PV)
  9. 【速報】パナマ文書に記載されている日本企業、日本人の一覧リスト (1 PV)
  10. 韓国のカルト教団「統一協会」の教祖「文鮮明」が死亡 (1 PV)

今月のアクセスランキング(上位10件)

  1. ログ速(ろぐそく、logsoku) - 過去ログ スレタイ検索 全文検索 (135 PV)
  2. PHP、MySQLで動くオープンソース掲示板ソフト (133 PV)
  3. 5ちゃんねる(5ch.net、旧2ちゃんねる)掲示板 (104 PV)
  4. 「真実を探すブログ」と「カレイドスコープ」が互いに誹謗・中傷と非難の応酬 (100 PV)
  5. 2ちゃんねる(2ch)検索 掲示板 - スレタイ、過去ログ、全文検索 (85 PV)
  6. プリンセスガーデンホテル女性社長の「片岡都美」氏はフジモリ元大統領夫人 (51 PV)
  7. 2chまとめサイト(ブログ)検索 (38 PV)
  8. 2chみたいな掲示板「PHP 2chBBS」 (30 PV)
  9. 掲示板フリーソフト - 無料で利用できる掲示板CGI (23 PV)
  10. ピーアーク三田は許せない 東京都港区 (22 PV)

アクセス統計

ディレクトリ

関連サイト