[DBI]の検索結果
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 に登録する
Template Toolkit (TT)は、HTML::Templateなど他のテンプレートと比較してより汎用性の高い処理をすることが可能なテンプレートエンジン。出力をサブルーチンに渡したりファイルに出力することもできる。
また、テンプレートファイル内の変数置換だけでなく、テンプレートの中にTT2言語と呼ばれる言語で簡単なプログラムを書いたり、DBIなどのプラグインを使用してデータベースへの接続をすることも可能。
Template Toolkit Home Page
Template Toolkit Manual -テンプレートツールキット和訳マニュアル-
Template Toolkit Manual(英語)
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"; }
1
アクセスランキング
今日のアクセスランキング(上位10件)
- プリンセスガーデンホテル女性社長の「片岡都美」氏はフジモリ元大統領夫人 (6 PV)
- 2NN (2ch News Navigator) (3 PV)
- 掲示板フリーソフト - 無料で利用できる掲示板CGI (2 PV)
- [おわコン]FF14、不評のあまり無料期間延長に追い込まれる (1 PV)
- [巨大地震]東北地方太平洋沖地震(東日本大震災)[M9.0] (1 PV)
- [中国]中央軍事委副主席に「太子党」筆頭格の習近平氏が就任 (1 PV)
- [事件]鬼畜作家の黒田一郎(村崎百郎)、読者にめった刺しにされ死亡 (1 PV)
- [動画]ライオンの群れが恐ろしい生き物にエサを横取りされる (1 PV)
- [兵器]V-22 オスプレイまた墜落 (1 PV)
- [遠隔操作ウイルス事件]警視庁がネット関連会社社員の片山祐輔容疑者を逮捕 (1 PV)
今月のアクセスランキング(上位10件)
- 2NN (2ch News Navigator) (332 PV)
- プリンセスガーデンホテル女性社長の「片岡都美」氏はフジモリ元大統領夫人 (105 PV)
- 小林興起元衆議院議員がタレントの杉本彩さんにキスを迫る (61 PV)
- 2ちゃんねる(2ch)検索 掲示板 - スレタイ、過去ログ、全文検索 (43 PV)
- 読売新聞「石井誠」記者変死事件 (22 PV)
- ログ速(ろぐそく、logsoku) - 過去ログ スレタイ検索 全文検索 (22 PV)
- 5ちゃんねる(5ch.net、旧2ちゃんねる)掲示板 (17 PV)
- 掲示板フリーソフト - 無料で利用できる掲示板CGI (13 PV)
- 掲示板やチャットなどのフリーPHPスクリプトの配布サイト (12 PV)
- PHP、MySQLで動くオープンソース掲示板ソフト (12 PV)
アクセス統計
ディレクトリ
- 59bbs.org - 掲示板
- Amalink - 画像付きamazon商品リンク作成ツール
- Mailform Std - オープンソースライセンス(GPLv2)のメールフォームCGI(Perl)
- ThreadPlus - オープンソースライセンスの(GPLv2)掲示板CGI(Perl)
- 2ちゃんねる掲示板検索
関連サイト
- 語句ログ - オープンソースブログソフト59Trackerを利用した情報共有ブログ
- 株価と為替レート(FX)の掲示板
- CommentPP - オープンソース掲示板システム(PHP/MySQL)のダウンロード
- BBS10 - CommentPP を利用したインターネット掲示板