[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";
}
[1981] Posted by kagahiro at 2010/07/26 00:12:18
オープン | 0 point | Link (6) | Trackback (0) | Comment (0)
オープン | 0 point | Link (6) | Trackback (0) | Comment (0)
キーワード
[Perl]DBI経由でMySQLに接続して、SELECT文でデータを取得するサンプルプログラム 関連リンク
| [Perl][MySQL]INSERT文でシングルクオートを含んだレコードを追加するには | |
| PerlからDBIモジュールを使ってMySQLのテーブルにINSERT文でシングルクオートの含んだレコードを追加するには、次のようにprepare メソッドでプレースホルダを使ったステートメントハンドルを取得して、execute メソ... | |
| MySQL | |
| MySQLとは、フィンランドのMichael Widenius氏よって開発された、オープンソースライセンスで配布されている高速性に重点を絞った軽快なRDBMSで、欧米などで広く普及している。... |
|
| MySQL 書籍 | |
| オープンソースの高速・軽量データベース「MySQL」に関する書籍。入門書や運用管理についての詳細な解説書、リファレンスなど。MySQL 徹底入門 第2版オープンソースのデータベース... |
|
| SQLで先頭から上位10件のレコードを取得する方法(Oracle、SQL Server、MySQL、PostgreSQL) | |
| 「先頭からn件のレコード(結果セット)だけ取得する方法が知りたい。」というのは、データベース関連のメーリングなどで以前からよくある質問ですが、RDBの種類やバージョンに... |
|
| SQLでn件目からm件目までのレコードを取得する方法(Oracle、SQL Server、MySQL、PostgreSQL) | |
| SQLを使用して先頭からn件のレコードを取得するだけでなく、n件目からm件目までのレコードを取得することも可能です。Oracle8i R8.1.5 以降Oracle8i R8.1.5 以降では、Table1の... |
|
| PHPでMySQLに接続して、SELECTでデータを取得するサンプルプログラム | |
| PHPのプログラムからMySQLに接続し、SELECTでデータを取得する処理のサンプルプログラムです。あらかじめphpMyAdminを使用してMySQLにテータベース「testdb」を作成し、以下のSQLを実行しテーブル「users」を作成、3... | |
[Perl]DBI経由でMySQLに接続して、SELECT文でデータを取得するサンプルプログラム トラックバック
トラックバックURL :
[Perl]DBI経由でMySQLに接続して、SELECT文でデータを取得するサンプルプログラムへのコメント
アクセスランキング
今日のアクセスランキング TOP 10
- 動画共有サイト - ニコニコ動画 (2 PV)
- シストレ(システムトレード) - コンピューターシステムで株や通貨を自動売買 (2 PV)
- アボガドのオリーブオイル漬け (2 PV)
- Windows Vista Capable PC (2 PV)
- ハッピーハッキングキーボード(HHKB、Happy Hacking Keyboard) (2 PV)
- ブログを利用したECサイト向け口コミ広告サービス (2 PV)
- jig.jp、「jigベンチマーク 2.0.0」をリリース (2 PV)
- 夕刊フジBLOGが終了 (2 PV)
- CGI(Perl、PHP)の制作、カスタマイズを格安にて承ります (2 PV)
- ez-HTML(HTMLエディタ) (2 PV)
今月のアクセスランキング TOP 10
- SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (162 PV)
- Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (126 PV)
- 2NN 2ちゃんねるニュース速報+ナビ (79 PV)
- FC2まとめ (38 PV)
- 仲値トレードが簡単にできる無料EA「NAKANE3」 #MT4 (35 PV)
- MT4向け1ポジブレイクアウトEA「HEADLINE」オープンソースライセンス(GPL3)で公開 #USDJPY (32 PV)
- 2ちゃんねる(2ch) (30 PV)
- 安全性重視の完全無料ナンピンマーチンEA「Million Dollar(ミリオンダラー)」 #FX #ゴールド #ビットコイン (28 PV)
- 爆益を狙うハイリスクハイリターンのナンピンマーチンEA「Hyper Dollar MT5」 (27 PV)
- USTREAM(ユーストリーム) 日本語版 無料のライブ映像配信サービス (24 PV)
アクセス統計
ディレクトリ
関連サイト