[DBI]の検索結果
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"; }
Template Toolkit (TT)は、HTML::Templateなど他のテンプレートと比較してより汎用性の高い処理をすることが可能なテンプレートエンジン。出力をサブルーチンに渡したりファイルに出力することもできる。
また、テンプレートファイル内の変数置換だけでなく、テンプレートの中にTT2言語と呼ばれる言語で簡単なプログラムを書いたり、DBIなどのプラグインを使用してデータベースへの接続をすることも可能。
The Template Toolkit is a fast, flexible and highly extensible template processing system.
It is Free (in both senses: free beer and free speech), Open Source software and runs on virtually every modern operating system known to man.
It is mature, reliable and well documented, and is used to generate content for countless web sites ranging from the very small to the very large.
Template Toolkit Home Page
Template Toolkit Manual -テンプレートツールキット和訳マニュアル-
Template Toolkit Manual(英語)
また、テンプレートファイル内の変数置換だけでなく、テンプレートの中にTT2言語と呼ばれる言語で簡単なプログラムを書いたり、DBIなどのプラグインを使用してデータベースへの接続をすることも可能。
The Template Toolkit is a fast, flexible and highly extensible template processing system.
It is Free (in both senses: free beer and free speech), Open Source software and runs on virtually every modern operating system known to man.
It is mature, reliable and well documented, and is used to generate content for countless web sites ranging from the very small to the very large.
Template Toolkit Home Page
Template Toolkit Manual -テンプレートツールキット和訳マニュアル-
Template Toolkit Manual(英語)
Perl Template Toolkit
Oreilly & Associates Inc 著者:Darren Chamberlain,David Cross,Andy Wardley 価格:3,294円
PerlからDBIモジュールを使ってMySQLのテーブルにINSERT文でシングルクオートの含んだレコードを追加するには、次のようにprepare メソッドでプレースホルダを使ったステートメントハンドルを取得して、execute メソッドで値を渡してやればいいらしい。
my $sth = $dbh->prepare("insert into mytable(foo,bar,baz) VALUES(?,?,?)");
$sth->execute($foo, $bar, $baz);
INSERT文に限らずSQL文で変数値を渡す場合は、プレースホルダを使えばいいのか。
mysqlデータベースにinsertできない
DBI/DBDの使い方
Perl で、バイナリデータを MySQL に登録する
実践ハイパフォーマンスMySQL 第2版
オライリージャパン 著者:Baron Schwartz,Peter Zaitsev,Vadim Tkachenko,Jeremy D. Zawodny,Arjen Lentz,Derek J. Balling 価格:4,830円 評価:★★★★★
- 類似書は全部不要、究極の解説書 ★★★★★
1
アクセスランキング
今日のアクセスランキング TOP 10
- 安全性重視の完全無料ナンピンマーチンEA「Million Dollar(ミリオンダラー)」 #FX #ゴールド #ビットコイン (19 PV)
- 「Million Dollar MT5」のナンピンマーチン大会(#MCC2023)での設定 (13 PV)
- SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (6 PV)
- 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (4 PV)
- MT4向け無料ヘッジ(両建て)ツール(EA)「STOPPER FREE」 #自動売買 #FX (3 PV)
- NoteでナンピンマーチンEA「Million Dollar MT5」を販売中 (3 PV)
- 完全無料のMT4向けナンピンEA「Nanpin K(ナンピンケイ)」をバージョンアップ(Ver 2.04) (2 PV)
- 元早大大学院教授「植草一秀」氏の逮捕は陰謀だった (2 PV)
- [Perl][MySQL]INSERT文でシングルクオートを含んだレコードを追加するには (1 PV)
- 動画検索サイト 「Woopie(ウーピー)」 (1 PV)
今月のアクセスランキング TOP 10
- SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (2128 PV)
- 安全性重視の完全無料ナンピンマーチンEA「Million Dollar(ミリオンダラー)」 #FX #ゴールド #ビットコイン (1668 PV)
- 「Million Dollar MT5」のナンピンマーチン大会(#MCC2023)での設定 (1131 PV)
- 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (682 PV)
- 2chまとめサイト - 痛いニュース(ノ∀`) (316 PV)
- MT4向け無料ヘッジ(両建て)ツール(EA)「STOPPER FREE」 #自動売買 #FX (293 PV)
- 完全無料のMT4向けナンピンEA「Nanpin K(ナンピンケイ)」をバージョンアップ(Ver 2.04) (250 PV)
- Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (229 PV)
- DECOLOG(デコログ) (196 PV)
- Google News (グーグルニュース)日本版 (193 PV)
アクセス統計
ディレクトリ
関連サイト