[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
- 無料掲示板CGIのダウンロード (82 PV)
- [将棋]羽生式袖飛車(はぶしきそでびしゃ) (12 PV)
- SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (10 PV)
- Perlで全角半角変換を行う方法 (4 PV)
- 仲値トレードが簡単にできる無料EA「NAKANE3」 #MT4 (4 PV)
- Google News (グーグルニュース)日本版 (4 PV)
- [FX]高値更新・安値更新でエントリー、MT4向け無料スキャルピングEA「1Scalper」#システムトレード (3 PV)
- [Perl]UTF-8でエンコードされた英数字の全角半角変換を行うコード (3 PV)
- [gcc]iconvで文字エンコードを変換するサンプルプログラム (3 PV)
- 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (2 PV)
今月のアクセスランキング TOP 10
- 無料掲示板CGIのダウンロード (235 PV)
- SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (193 PV)
- 仲値トレードが簡単にできる無料EA「NAKANE3」 #MT4 (134 PV)
- Google News (グーグルニュース)日本版 (86 PV)
- [将棋]羽生式袖飛車(はぶしきそでびしゃ) (69 PV)
- [PR]noteで販売している自作EAの一覧 (68 PV)
- 2NN 2ちゃんねるニュース速報+ナビ (60 PV)
- 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (56 PV)
- 究極の爆益ゴールドナンピンマーチンEA「Extreme(エクストリーム)」 MT4向け (52 PV)
- [FX]高値更新・安値更新でエントリー、MT4向け無料スキャルピングEA「1Scalper」#システムトレード (52 PV)
アクセス統計
ディレクトリ
関連サイト