[id:1981]の検索結果


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)

  1  


アクセスランキング

今日のアクセスランキング TOP 10

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (4 PV)
  2. ガンマトレード(ガンマプレイ)とは #FX #用語解説 #オプション取引 (4 PV)
  3. 59Tracker 3.1 のインストール方法 (3 PV)
  4. [将棋]佐藤天彦名人対Ponanza(ポナンザ)の対局は相掛かりで先手のPonanzaが圧勝 #電王戦 (3 PV)
  5. 2ch名人 羽生善治「コンピュータ将棋の斬新な思考を取り入れ将棋の幅が広がる。一方で培った美意識が崩れる」 (2 PV)
  6. MT4向け1ポジアノマリーEA「DAY TRADING」 オープンソースライセンス(GPL3) #ドル円 (2 PV)
  7. エーハチネット(A8.net)、商品DBサービスを開始 (1 PV)
  8. [将棋]加藤一二三九段(ひふみん)が高野智史四段に負け引退決定、感想戦をやらずに即去り (1 PV)
  9. ライト、ついてますか―問題発見の人間学、ドナルド・C・ゴース/G.M.ワインバーグ (1 PV)
  10. Googleの4月アップデートからSEO的に気になる点をまとめてみた。 | SEO Japan (1 PV)

今月のアクセスランキング TOP 10

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (39 PV)
  2. 2NN 2ちゃんねるニュース速報+ナビ (34 PV)
  3. 仲値トレードが簡単にできる無料EA「NAKANE3」 #MT4 (17 PV)
  4. FC2まとめ (13 PV)
  5. Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (13 PV)
  6. Google News (グーグルニュース)日本版 (11 PV)
  7. 爆益を狙うハイリスクハイリターンのナンピンマーチンEA「Hyper Dollar MT5」 (10 PV)
  8. MT4向け1ポジブレイクアウトEA「HEADLINE」オープンソースライセンス(GPL3)で公開 #USDJPY (10 PV)
  9. Google Maps(グーグルマップ)日本版 - 地図検索、ルート検索 (9 PV)
  10. YouTube(ユーチューブ)日本版 - 動画共有、ライブ配信 (8 PV)

アクセス統計

ディレクトリ

関連サイト