トップページphp
323コメント112KB

Perl::DBI

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/03/12 23:35ID:xHkBB9i/
DBIでも語ろうぜ

DBI.org
http://DBI.perl.org
DBI-ML-J
http://member.nifty.ne.jp/hippo2000/dbi/dbi_japan.htm
DBI.pm 日本語訳
http://member.nifty.ne.jp/hippo2000/perltips/dbimemo.htm
0008502/03/13 21:48ID:???
>>7,6
買ってみることにするよ

これもいちおうはとこう
「入門 Perl DBI」(Programming the Perl DBI)
http://www.oreilly.co.jp/BOOK/perldbi/
0009かおりん祭り ◆IidAAeuI 02/03/14 03:28ID:???
 ∧∧
(^▽^) 新スレおめでとうございまーす♪          
ヾcUUっ
0010nobodyさん02/03/14 21:49ID:CO7zG810
Perl 256 DBI編は「DBIを使うため」の本じゃなくて「DBDを作るため」の本ですね。
マニアな内容でイイです。


まだ前半しか読んでないけど、英訳すれば英語圏でもちゃんと売れそうな内容っすね。さすが。
で、ジョーク(?)が日本固有なものじゃないのは、著者の川合さんがその辺を想定してるからかな。
0011nobodyさん02/03/15 17:16ID:???
ガーソ、本屋になかったよ。
0012502/03/17 01:36ID:???
読みました。
EffectivPerlわかるくらいのひとなら
かなりおもしろいはず。
DBIて奥深いね。
00131102/03/17 15:50ID:???
やっと入手。
流石に濃いね。
でも256本の特徴なのか
         <BIG>こんなの</BIG>
が沢山あるのが読みにくい…。
0014nobodyさん02/03/18 22:10ID:IpsHW25p
あげ
0015nobodyさん02/03/19 21:17ID:w47YlbXs
MySQLについて詳しい書籍はないでしょうか?
PostgreSQL本はよく見かけるんですが…
00161502/03/19 21:34ID:w47YlbXs
補足です、PerlでMySQLを使いたいのです。
PHPとの組み合わせがメインのものが多くて・・
0017nobodyさん02/04/01 20:39ID:s5HvuRgH
>>15
"MySQL & mSQL"っしょ。
http://www.oreilly.co.jp/BOOK/msql/
00181502/04/01 22:36ID:???
レスが・・・
>>17
ありがとうございます。
ネット上の資料を点々としていました。
早速明日本屋に寄ってきます。
0019nobodyさん02/04/16 13:05ID:kcYOQBmc
DBDを書くのって馬鹿みたいにメンドクサイのだが、
この辺の構造に誰も文句いったことないんかね?
0020nobodyさん02/04/16 13:18ID:???
>>19
さぁ
0021nobodyさん02/05/03 01:06ID:???
>>19
まぁ、Tim神の怒りをかったら終わりだからなぁ。
0022nobodyさん02/06/09 20:05ID:6X1lutDF
激しくワラタ
http://www.cuppy.co.jp/sitemap/sitemap.html
0023nobodyさん02/07/21 12:25ID:???
本発見、MLの人だ。このシリーズ、最近紙質落としてなかたけ
0024nobodyさん02/07/21 12:26ID:???
http://www.ascii.co.jp/books/detail/4-7561/4-7561-4058-0.html
貼り忘れ
0025nobodyさん02/07/21 12:28ID:???
http://www.amazon.co.jp/exec/obidos/ASIN/4894715309/hippo2000ps-22/249-7841065-2957127
ココにも、そういえばMySQL+Perlの組み合わせのサーバーってあまりないんだっけ
0026nobodyさん02/07/22 19:32ID:???
>>25
なぜそう思ったのか400字以内で説明せよ。
0027nobodyさん02/09/25 23:18ID:???
Cマガジンで Perl DBI の連載が始まる (始まった?)
らしいね。結城さんの連載と入れ替わりなのかな。
読んだヒトいる? 漏れはプローガ先生の記事が無い
Cマガは買う気がしないけど。
0028nobodyさん02/10/13 16:49ID:???
http://search.cpan.org/author/CHAMAS/MLDBM-2.01/
0029nobodyさん02/11/02 05:11ID:o+t0cR8M
なんか今日会社にきた取引先の人が、
MYSQL+Perl(DBI/DBD)で開発することについて
「そのようなやり方は聞いたことがありませんねぇ。
普通はMYSQL+PHPですよ。」
とか言ってたんだけどそんなにMYSQL+Perl(DBI/DBD)
ってマイナーなやり方なのかな?
それともそいつが勉強不足なだけ?

0030nobodyさん02/11/02 06:25ID:???
彼の「普通」がそうだっただけ。
ドメインによって色々な「普通」有るからなぁ。

大抵の奴が自分の属しているドメインの「普通」が
普通だと思ってるからたちが悪い。
00312902/11/03 23:56ID:Ma5qtI8B
つーかその人Web関係のSEらしいんだけど、
もうちょっと勉強しろと言いたい。
0032nobodyさん02/11/04 00:17ID:???
>>29
単に Perl を避けているだけでは? 漏れの周りには、
「Perl ってモジュールとか入れなきゃいけないか
ら面倒じゃないですか。PHP が簡単だから PHP に
しましょうよ」なんて言うヒトもいる。そんなレベ
ルの話じゃないのかな?

「普通」なんて言い方は、自分の常識を押し付けた
いときに使うよ。漏れの場合(w
0033nobodyさん02/11/04 00:59ID:???
確かにMySQL+PHPと比べた場合MySQL+Perl(DBI/DBD)のが面倒に思える
0034nobodyさん02/11/08 17:14ID:4WbT0Alf
もっとDBI/DBDは知られてほしいなぁ。
PostgreSQLのシーラカンス本では、Ruby、JSP、PHPなどとの
連携は紹介されているのにPerlとの連携に関しては触れられてない。
なんでだよ!
0035nobodyさん02/11/08 20:42ID:???
>>34
筆者がPerlやらない人だから。
0036nobodyさん02/11/18 00:41ID:+Oj37AkT
なんとなくMacOSX 10.2にperl+postgresqlの環境を作ろうと
思ったのですが、DBIとDBDのモジュールのインストールが
難しい。よく分からないエラーがでてしまいます。

成功してる人、教えて!!!
0037 ◆hMJAPH9PWA 02/11/18 01:24ID:???
エラーログを見てみないとなんとも。
0038nobodyさん02/11/24 23:55ID:nYY6oDGd
>>36
DBI-Japanで聞けば河合さんが教えてくれると思うよ?
http://member.nifty.ne.jp/hippo2000/dbi/dbi_japan.htm
0039 ◆hMJAPH9PWA 02/11/25 00:18ID:???
>>38
「よく分からないエラーが出てしまいます」じゃ誰だって教えられないよ。
0040nobodyさん02/11/25 09:28ID:???
>>39
いや、もちろんそうなんだけどね。
どのようなエラーが出るかちゃんと報告すれば
ちゃんと教えてくれるから。>>36
0041nobodyさん02/12/14 17:32ID:R1uTGzYK
なぜWebプログラミング板でこのスレが上がってこないんだ?
0042nobodyさん02/12/14 20:27ID:???
どいつもこいつもCSVで充分ってこった。
0043nobodyさん02/12/14 21:21ID:???
DBD::CSV DBD::File
排他処理が不安で使ってない香具師
0044名無しさん@お腹いっぱい。02/12/14 22:14ID:???
WebProg ったって個人サイトの掲示板みたいなのも含まれるだろうしね。
ログ100件ぐらいだったらファイルで充分だったりする。
0045nobodyさん02/12/15 01:44ID:???
数千件 数万件でもやりようによってはCSVで十分な
パフォーマンス出せたりする。
DBI DBDはインストールできればあとはSQLの書き方なわけで
DBIは常用していても話題がないのよ。
0046nobodyさん02/12/17 08:30ID:PsoYCNCf
>>45
最近、DBD::CSVがバージョンアップしてJOINもできるようになったYO!
とか色々あるだろ。なんか、PHPはDBとの連携ができるけどPerlは
できないとか変な偏見があるみたいだからちょっと悔しかったりする。
0047nobodyさん02/12/17 23:28ID:???
>>46
そんな偏見ははじめて聞いたが……。
悔しいことは悔しいね。

んで、DBD::CSVのロック機構はどうなってるの?
0048nobodyさん02/12/19 20:40ID:???
悔しい?
かわいそうな人達なのでやさしく教えてあげてください。
0049nobodyさん02/12/27 03:32ID:s3+SF1Z2
>>32
Perlはプログラマによって非常に観やすくいい仕事するCGIと
非常に乱雑で適当に仕事するCGIに大きく分かれるよね。

PHPもエラーメッセージがブラウザで確認されてしまうのが厄介。
(というかカッコワルイ)

CPANモジュールも普通にXで使うのなら便利なんだけど・・
ウェブサイト用CGIとして使うと余計なモジュールが多すぎてヘタすりゃ
いらないモジュールまで取り込んでしまうプログラマもいるみたい。
(そういう人は影で笑っておけば・・・済まないか w)
0050nobodyさん02/12/27 07:12ID:wZxYN2FO
DBD::Oracleって接続遅くない?
0051nobodyさん02/12/27 19:09ID:???
>>49
>PHPもエラーメッセージがブラウザで確認されてしまうのが厄介。
>(というかカッコワルイ)
貴殿はPHPを使ったことが無いとお見受けしました。
0052nobodyさん02/12/29 13:20ID:???
>>49
いらないモジュールuseしても問題ないだろ。

>CPANモジュールも普通にXで使うのなら便利なんだけど・・
xで使うねぇ・・・
貴殿はちょっとLinuxかじった房
だとお見受けしました。
0053nobodyさん02/12/29 15:27ID:???
>>52
> いらないモジュールuseしても問題ないだろ。
いやー、問題ないとは言えないでしょ。
メモリの無駄だし、標準関数をオーバーライドするモジュールもあるし。
インストールは、ディスクが無駄な以外問題ないと思うけど。

>>49 の「取り込む」の意味が不明なので話の前提がわからんが、
49がアレだというのには同意する。
0054nobodyさん03/01/13 21:30ID:GwIzQASu
DBIをもっと知ってほしいage
0055山崎渉03/01/15 13:32ID:???
(^^)
0056山崎渉03/03/13 17:41ID:???
(^^)
0057nobodyさん03/03/13 20:56ID:tDY9NfKc
勉強するには本を買うしかないのですか?

なんにも分かってない状態なので、
とりあえず“入門Perl DBI”を注文してあるのですが、
それが届くまでの間、どこかに分かりやすいサイトがないものかと。
いろいろ見て回ったものの、正直、ぜんぜん理解できませんでした・・・

ってことは、本を買っても理解できないってことになるのだろうか・・・

あと、入門書として“入門Perl DBI”は最適でしょうか?
0058nobodyさん03/03/13 21:50ID:???
インポート無しでuseすれば名前空間は汚れないし。。
自分の空間にしかインポートされないから、勝手に汚染されることはないじゃろ。

どうせモジュールなんてmod_perlがキャッシュしてくれるから、分かりやすいように書けばよろしい。

use hogehoge ();
0059nobodyさん03/03/13 21:56ID:???
あぁ文章がめちゃくちゃだった。。

もっとまともな説明は、
use モジュールの名前 (インポートする関数名のリスト);
2つ目のリストが省略されたら、モジュールのデフォルトのものがインポートされる。
もちろん、デフォルトが何もインポートしない、になっているかもしれない。

つまり、、、
use Module () と、require Moduleは、いつ読み込まれるか、っていう違い(コンパイル時、
実行時)はあるけれど、結果的には同じことがおきる。
0060nobodyさん03/03/13 21:59ID:???
つまり結果が同じならどうでも良いんだってことよ。
0061nobodyさん03/03/14 00:56ID:???
ふ〜ん。ま、そんなもんか。
0062nobodyさん03/03/14 02:37ID:???
object の package って require しても使えるんだっけ?
0063eval "require hoge;";03/03/14 13:06ID:YuEJwOb3
use → モジュールが読み込まれ、関数が自動的にインポートされる。返り値は?
require → モジュールが読み込まれるだけで、インポートはされない。成功すれば真の値をかえす。

という理解でいいかな。
0064nobodyさん03/03/14 15:05ID:???
マジレスすると
use Module @list は
BEGIN { require Module; Module->import(@list) } と等価、
no Module @list は
BEGIN { Module->unimport(@list) } と等価だ。

import 関数は Perl 標準の Exporter モジュールから
継承してるケースが殆どだから、シンボルの輸出入に
関する仕組みは Exporter の POD を読めば理解できる。
しかし import を自前で実装してるモジュールもあるし、
require した段階で main パッケージに割り込む行儀の
悪いモジュールもある。よって use Module (); で確実に
輸入規制ができるとは限らない。

use は sub NAME と同じく宣言だから戻り値は無い。
my $rv = use Module; は構文エラーになるし、無理矢理
my $rv = eval { use Module; }; 等としても undef が入るだけ。
0065nobodyさん03/03/14 22:37ID:???
あぁ。そうかぁ。require時の初期化の時点で勝手に割り込むやつもいるのか。。

このあたりは、Perl教なら、リビングの法則でなんとか説明するところかな。(?)
0066nobodyさん03/03/19 10:36ID:???
廃れてる・・・な。
0067nobodyさん03/03/30 17:35ID:vpWCaSDo
DBD::Access誰か作ってくれないかなぁ。
てゆーか誰も作ってないってことは難しいのかなぁ。
0068nobodyさん03/03/30 17:51ID:Uipu2S6m
ODBC 経由では無理だった?もしくは、ADOとか。
00696703/03/30 18:01ID:???
>>68
いや、今はWindowsXP+ActivePerl+DBD::ODBCなんですけど、
例えばLinuxのレンタルサーバーのUserディレクトリとかで
手軽に使えたらいいなーって思ったんですけど。
0070nobodyさん03/03/30 19:32ID:???
SELECT文実行後にfinish しないとまずいですか?
0071nobodyさん03/03/30 21:02ID:???
>>70
気になるならやっとけ。
0072nobodyさん03/03/30 21:14ID:???
prepare_cachedを使うときはfinishしないと駄目。かも。
0073nobodyさん03/04/07 00:02ID:btpU8pX3
Perlを256倍使うための本DBI編買ったよ。
てゆーかPerlの256本ってこれだけだよね?
Rubyはいっぱい出てるのに。
0074nobodyさん03/04/15 23:44ID:Tnm/ZADI
DBD::CSVはPure PerlだからTelnet使えないレンタル鯖で
使えるかと思いきや、中でText::CSV_XS使っているという罠。
0075山崎渉03/04/17 12:01ID:???
(^^)
0076nobodyさん03/04/20 00:04ID:CCxtB9hm
DBD::Template使ったことある香具師いる?
あれいいね。
0077山崎渉03/04/20 00:29ID:???
(^^)
0078動画直リン03/04/20 00:40ID:dAQHn3gv
http://www.agemasukudasai.com/movie/
0079山崎渉03/04/20 05:57ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0080山崎渉03/05/22 02:08ID:???
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
0081山崎渉03/05/28 17:17ID:???
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
0082nobodyさん03/05/30 14:30ID:I8fiUs9e
どうしてもCSVファイルにDBI使いたくてDBD::CSVやDBD::Spriteを
試したんだけど、どうしてもベンチマークとると速度が遅い。
やっぱりSQL解析部分で時間食うみたいだった。
しょうがないのでSQL解析部分を自作して速度の問題を解決。
DBDは一から作るのめんどいのでDBD::Templateを使いました。
もうこれからは掲示板だろうがなんだろうがDBI使い倒してやる。
0083nobodyさん03/05/31 06:20ID:rt7PEdog
>>82
速度改良されたpmファイルアップキボンヌ
0084nobodyさん03/05/31 23:01ID:oQuJYHeZ
あなたが探してる話題あれはこれでしょ♪
http://endou.kir.jp/betu/linkvp/linkvp.html
http://s-rf9.free-city.net/page006.html
00858203/06/03 16:07ID:lz5wO9wK
DBD::Templateを使ったサンプルをUPしておきました。
SQL解析部分は見てもらえば分かりますが「ナンチャッテSQL解析」なので、
自分のプログラムに合わせて処理を付け足す必要があります。
速度とプログラムの汎用性という意味では自分的には実用的かと思います。

http://webcolle.minidns.net/perl/
0086nobodyさん03/06/06 11:28ID:???
>>85
すばーらスィ!!!!!!
sql文の練習に使えます。ありがと。
こんど、オンラインでやってみます。
postgressql+pg.pmでやるのとどっちが速いかは、
やっぱデータ量によるんでしょうね。
00878203/06/06 16:33ID:q9w0p8v1
>>86
所詮データはCSVファイルなので本物のRDBMSとは比較になりません。

・CSVに対してSQLが使える。
・DBIを使うことでプログラムの汎用性がある。
・速度的にも掲示板のログ管理程度なら実用レベルである。
・PurePerlなのでレンタル鯖等でも使える。

メリットはこんなところでしょうか。
ちなみにテーブル定義とSQL解析はプログラムごとに
付属のdbisub.plをいじらなければなりませんので。
0088nobodyさん03/06/06 22:17ID:???
>>87
ところで、川合さんの「PerlでDBI」(256倍シリーズ)買ったけど、ちょちょっ
と見ると、DBDの分類で、「自作系 (1)sqlの解析にSQL::Statementを利用」
の中に、DBD-CSVってのがある(DBD-Fileを継承)けど、>>85のは、それの兄弟
のようなものかね。

00898203/06/08 01:44ID:???
DBD-Templateは河合さん作です。
↓のURL見た方が早いかもしれませんが、中身は本の中で紹介されてた
SomeFmt.pmを少しいじっただけだと思います。

http://www.hippo2000.info/cgi-bin/KbWiki/KbWiki.pl?cmd=disp&page=DBD%3a%3aTemplate

なんか作者でもないのに勝手に宣伝してるみたいでなんか
悪いことしてる気がしてきた・・・
0090nobodyさん03/06/10 07:48ID:???
>>89
いえ。ぜんぜん気にせんといてくらさい。
0091山崎 渉03/07/15 11:13ID:???

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0092nobodyさん03/07/24 20:46ID:???
あげとく
0093nobodyさん03/07/24 21:41ID:???
めんどくさくない?
0094山崎 渉03/08/02 02:24ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0095ぼるじょあ ◆ySd1dMH5Gk 03/08/02 04:53ID:???
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ
0096nobodyさん03/10/30 20:20ID:MsIzuyZ0
誰かDBD::Access作ってよ。
DBD::ODBC使えって?UNIXでも使いたいんだよ。
0097nobodyさん03/11/01 19:09ID:ryreETR0
DBIでトランザクション処理ってどのようにやるんですか?
0098nobodyさん03/11/01 19:40ID:???
終了。
0099nobodyさん03/11/06 11:41ID:+rjyvfMX
勝手に終わらすな
0100nobodyさん03/11/07 12:36ID:???
AutoCommit をoff(0)にしたら
それ以降は、commit するまで1つのトランザクション
01019703/11/11 23:17ID:???
>>100
遅レスですがありがとうございます。
0102nobodyさん03/11/20 16:24ID:5vqTDfsp
DBモジュールの件で質問ですが、PostgreSQLのgetvalueって、
MySQLではどういった形になるのでしょうか。
只今移行中です。
MySQLの場合はfechrowはあるのですけどgetvalueが無いので
困ってます。

PostgreSQLでのDBアクセスはPgモジュール、MySQLでは
http://www.atmarkit.co.jp/flinux/rensai/mysql04/mysql04a.html
この方法をとりました。

どうか教えてください。
0103nobodyさん03/11/20 16:44ID:???
FreeBSD の compat/linux 環境で Oracle 9i の DBD::Oracle を
build できた経験のある人っていませんか?
0104nobodyさん03/11/20 18:17ID:???
>>102
なんかあちこちで見かけるなw
selectall-xxx とかじゃだめかねえ
0105nobodyさん03/11/20 20:45ID:???
>>104
selectrowにしました。
ありがとうございました。
0106nobodyさん04/01/01 17:37ID:P0LnBj0e
$mydb = DBI->connect("dbi:Pg:dbname=$DB_name","$DB_user","$DB_pwd");
$word = "It's";
$word =~ tr/'/\\\'/;
$sth = $mydb->prepare("insert into $TABLE_name values ('$word');");
$sth->execute() ;
$sth->finish();
$mydb->disconnect();

ってやったとき"It's" の ' が消えて "Its"で登録されちゃうんですけど、どうすれば回避できますか?
$word =~ tr/'/''/; もやったけど、
DBD::Pg::st execute failed: ERROR: parser: parse error at or near "s" at character 86
ってでます。 quoteって関数使えば良いらしいけど、使い方が良くわかりません。
識者の方々殿。 よろしくお願いします。
0107nobodyさん04/01/01 17:59ID:???
>>106
http://www5a.biglobe.ne.jp/~n_rieko/perl/8.htm

- $word =~ tr/'/\\\'/;
+ $word =~ s/'/\\'/g;
■ このスレッドは過去ログ倉庫に格納されています