[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 に登録する

[2233] Posted by kagahiro at 2010/08/19 16:38:39
0 point | Link (2) | Trackback (0) | Comment (0)

Template Toolkit (TT)は、HTML::Templateなど他のテンプレートと比較してより汎用性の高い処理をすることが可能なテンプレートエンジン。出力をサブルーチンに渡したりファイルに出力することもできる。

また、テンプレートファイル内の変数置換だけでなく、テンプレートの中にTT2言語と呼ばれる言語で簡単なプログラムを書いたり、DBIなどのプラグインを使用してデータベースへの接続をすることも可能。

Template Toolkit Home Page
Template Toolkit Manual -テンプレートツールキット和訳マニュアル-
Template Toolkit Manual(英語)

[2226] Posted by kagahiro at 2010/08/17 17:15:46
0 point | Link (1) | Trackback (0) | Comment (0)

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)

  1  


アクセスランキング

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

  1. 掲示板やチャットなどのフリーPHPスクリプトの配布サイト (20 PV)
  2. 掲示板フリーソフト - 無料で利用できる掲示板CGI (6 PV)
  3. [Twitter]ツイッター検索のまとめ (6 PV)
  4. プリンセスガーデンホテル女性社長の「片岡都美」氏はフジモリ元大統領夫人 (5 PV)
  5. 自称「紀州のドンファン」和歌山の資産家「野崎幸助」氏が覚せい剤で不審死、警察は殺人容疑で捜査 (4 PV)
  6. 三菱自動車燃費データ偽装の補償金は1台たったの10万円 (3 PV)
  7. 【最近の有効求人倍率の低下について。全国平均0.84倍】 (3 PV)
  8. 5ちゃんねる(5ch.net、旧2ちゃんねる)掲示板 (3 PV)
  9. カラムーチョ8倍が「辛くて食えねえ」とネットで話題に (2 PV)
  10. ハニートラップとは (2 PV)

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

  1. 2ちゃんねる(2ch)検索 掲示板 - スレタイ、過去ログ、全文検索 (65 PV)
  2. 掲示板やチャットなどのフリーPHPスクリプトの配布サイト (55 PV)
  3. 掲示板フリーソフト - 無料で利用できる掲示板CGI (36 PV)
  4. [Twitter]ツイッター検索のまとめ (25 PV)
  5. 浜崎あゆみ(はまさきあゆみ、ayumi hamasaki) (23 PV)
  6. 5ちゃんねる(5ch.net、旧2ちゃんねる)掲示板 (23 PV)
  7. [掲示板]2ちゃんねる(2ch.net) (23 PV)
  8. プリンセスガーデンホテル女性社長の「片岡都美」氏はフジモリ元大統領夫人 (21 PV)
  9. 2ちゃんねるは不法行為で乗っ取られていた、管理人のひろゆきが声明を発表 (20 PV)
  10. 2ちゃんねるまとめブログ「明日もやられやく」の管理人「小林浩忠容疑者」がウイルス作成罪で逮捕 (20 PV)

アクセス統計

ディレクトリ

関連サイト