5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

Perl::DBI

1 :nobodyさん:02/03/12 23:35 ID: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

2 :nobodyさん:02/03/12 23:43 ID:???
256倍本で DBI のが出たね。
まだ見てないけど。

ところで、Perl::DBI って書き方あるの?

3 :nobodyさん:02/03/12 23:51 ID:???
DBI256倍は14日発売じゃなかったか?
Perl::DBIは今考えた。
Perl-DBIとかPerl/DBIじゃしっくりこないかと思って。

4 :2:02/03/13 00:06 ID:???
256倍本、昨日見たよ。

5 :nobodyさん:02/03/13 12:50 ID:???
>>4
どう?

6 :nobodyさん:02/03/13 14:45 ID:???
はっとこ。
「Perlを256倍使うための本 DBI編」
http://www.ascii.co.jp/books/detail/4-7561/4-7561-4058-0.html

7 :2:02/03/13 15:19 ID:???
>>5
売っているのを見たってだけで、中を見たわけじゃない。
すまん。

8 :5:02/03/13 21:48 ID:???
>>7,6
買ってみることにするよ

これもいちおうはとこう
「入門 Perl DBI」(Programming the Perl DBI)
http://www.oreilly.co.jp/BOOK/perldbi/


9 :かおりん祭り ◆IidAAeuI :02/03/14 03:28 ID:???
 ∧∧
(^▽^) 新スレおめでとうございまーす♪          
ヾcUUっ


10 :nobodyさん:02/03/14 21:49 ID:CO7zG810
Perl 256 DBI編は「DBIを使うため」の本じゃなくて「DBDを作るため」の本ですね。
マニアな内容でイイです。


まだ前半しか読んでないけど、英訳すれば英語圏でもちゃんと売れそうな内容っすね。さすが。
で、ジョーク(?)が日本固有なものじゃないのは、著者の川合さんがその辺を想定してるからかな。

11 :nobodyさん:02/03/15 17:16 ID:???
ガーソ、本屋になかったよ。

12 :5:02/03/17 01:36 ID:???
読みました。
EffectivPerlわかるくらいのひとなら
かなりおもしろいはず。
DBIて奥深いね。

13 :11:02/03/17 15:50 ID:???
やっと入手。
流石に濃いね。
でも256本の特徴なのか
         <BIG>こんなの</BIG>
が沢山あるのが読みにくい…。


14 :nobodyさん:02/03/18 22:10 ID:IpsHW25p
あげ

15 :nobodyさん:02/03/19 21:17 ID:w47YlbXs
MySQLについて詳しい書籍はないでしょうか?
PostgreSQL本はよく見かけるんですが…

16 :15:02/03/19 21:34 ID:w47YlbXs
補足です、PerlでMySQLを使いたいのです。
PHPとの組み合わせがメインのものが多くて・・

17 :nobodyさん:02/04/01 20:39 ID:s5HvuRgH
>>15
"MySQL & mSQL"っしょ。
http://www.oreilly.co.jp/BOOK/msql/


18 :15:02/04/01 22:36 ID:???
レスが・・・
>>17
ありがとうございます。
ネット上の資料を点々としていました。
早速明日本屋に寄ってきます。

19 :nobodyさん:02/04/16 13:05 ID:kcYOQBmc
DBDを書くのって馬鹿みたいにメンドクサイのだが、
この辺の構造に誰も文句いったことないんかね?

20 :nobodyさん:02/04/16 13:18 ID:???
>>19
さぁ

21 :nobodyさん:02/05/03 01:06 ID:???
>>19
まぁ、Tim神の怒りをかったら終わりだからなぁ。

22 :nobodyさん:02/06/09 20:05 ID:6X1lutDF
激しくワラタ
http://www.cuppy.co.jp/sitemap/sitemap.html


23 :nobodyさん:02/07/21 12:25 ID:???
本発見、MLの人だ。このシリーズ、最近紙質落としてなかたけ

24 :nobodyさん:02/07/21 12:26 ID:???
http://www.ascii.co.jp/books/detail/4-7561/4-7561-4058-0.html
貼り忘れ

25 :nobodyさん:02/07/21 12:28 ID:???
http://www.amazon.co.jp/exec/obidos/ASIN/4894715309/hippo2000ps-22/249-7841065-2957127
ココにも、そういえばMySQL+Perlの組み合わせのサーバーってあまりないんだっけ

26 :nobodyさん:02/07/22 19:32 ID:???
>>25
なぜそう思ったのか400字以内で説明せよ。

27 :nobodyさん:02/09/25 23:18 ID:???
Cマガジンで Perl DBI の連載が始まる (始まった?)
らしいね。結城さんの連載と入れ替わりなのかな。
読んだヒトいる? 漏れはプローガ先生の記事が無い
Cマガは買う気がしないけど。

28 :nobodyさん:02/10/13 16:49 ID:???
http://search.cpan.org/author/CHAMAS/MLDBM-2.01/

29 :nobodyさん:02/11/02 05:11 ID:o+t0cR8M
なんか今日会社にきた取引先の人が、
MYSQL+Perl(DBI/DBD)で開発することについて
「そのようなやり方は聞いたことがありませんねぇ。
普通はMYSQL+PHPですよ。」
とか言ってたんだけどそんなにMYSQL+Perl(DBI/DBD)
ってマイナーなやり方なのかな?
それともそいつが勉強不足なだけ?



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

大抵の奴が自分の属しているドメインの「普通」が
普通だと思ってるからたちが悪い。

31 :29:02/11/03 23:56 ID:Ma5qtI8B
つーかその人Web関係のSEらしいんだけど、
もうちょっと勉強しろと言いたい。

32 :nobodyさん:02/11/04 00:17 ID:???
>>29
単に Perl を避けているだけでは? 漏れの周りには、
「Perl ってモジュールとか入れなきゃいけないか
ら面倒じゃないですか。PHP が簡単だから PHP に
しましょうよ」なんて言うヒトもいる。そんなレベ
ルの話じゃないのかな?

「普通」なんて言い方は、自分の常識を押し付けた
いときに使うよ。漏れの場合(w

33 :nobodyさん:02/11/04 00:59 ID:???
確かにMySQL+PHPと比べた場合MySQL+Perl(DBI/DBD)のが面倒に思える

34 :nobodyさん:02/11/08 17:14 ID:4WbT0Alf
もっとDBI/DBDは知られてほしいなぁ。
PostgreSQLのシーラカンス本では、Ruby、JSP、PHPなどとの
連携は紹介されているのにPerlとの連携に関しては触れられてない。
なんでだよ!

35 :nobodyさん:02/11/08 20:42 ID:???
>>34
筆者がPerlやらない人だから。


36 :nobodyさん:02/11/18 00:41 ID:+Oj37AkT
なんとなくMacOSX 10.2にperl+postgresqlの環境を作ろうと
思ったのですが、DBIとDBDのモジュールのインストールが
難しい。よく分からないエラーがでてしまいます。

成功してる人、教えて!!!

37 : ◆hMJAPH9PWA :02/11/18 01:24 ID:???
エラーログを見てみないとなんとも。

38 :nobodyさん:02/11/24 23:55 ID:nYY6oDGd
>>36
DBI-Japanで聞けば河合さんが教えてくれると思うよ?
http://member.nifty.ne.jp/hippo2000/dbi/dbi_japan.htm

39 : ◆hMJAPH9PWA :02/11/25 00:18 ID:???
>>38
「よく分からないエラーが出てしまいます」じゃ誰だって教えられないよ。


40 :nobodyさん:02/11/25 09:28 ID:???
>>39
いや、もちろんそうなんだけどね。
どのようなエラーが出るかちゃんと報告すれば
ちゃんと教えてくれるから。>>36

41 :nobodyさん:02/12/14 17:32 ID:R1uTGzYK
なぜWebプログラミング板でこのスレが上がってこないんだ?


42 :nobodyさん:02/12/14 20:27 ID:???
どいつもこいつもCSVで充分ってこった。

43 :nobodyさん:02/12/14 21:21 ID:???
DBD::CSV DBD::File
排他処理が不安で使ってない香具師

44 :名無しさん@お腹いっぱい。:02/12/14 22:14 ID:???
WebProg ったって個人サイトの掲示板みたいなのも含まれるだろうしね。
ログ100件ぐらいだったらファイルで充分だったりする。

45 :nobodyさん:02/12/15 01:44 ID:???
数千件 数万件でもやりようによってはCSVで十分な
パフォーマンス出せたりする。
DBI DBDはインストールできればあとはSQLの書き方なわけで
DBIは常用していても話題がないのよ。

46 :nobodyさん:02/12/17 08:30 ID:PsoYCNCf
>>45
最近、DBD::CSVがバージョンアップしてJOINもできるようになったYO!
とか色々あるだろ。なんか、PHPはDBとの連携ができるけどPerlは
できないとか変な偏見があるみたいだからちょっと悔しかったりする。

47 :nobodyさん:02/12/17 23:28 ID:???
>>46
そんな偏見ははじめて聞いたが……。
悔しいことは悔しいね。

んで、DBD::CSVのロック機構はどうなってるの?

48 :nobodyさん:02/12/19 20:40 ID:???
悔しい?
かわいそうな人達なのでやさしく教えてあげてください。

49 :nobodyさん:02/12/27 03:32 ID:s3+SF1Z2
>>32
Perlはプログラマによって非常に観やすくいい仕事するCGIと
非常に乱雑で適当に仕事するCGIに大きく分かれるよね。

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

CPANモジュールも普通にXで使うのなら便利なんだけど・・
ウェブサイト用CGIとして使うと余計なモジュールが多すぎてヘタすりゃ
いらないモジュールまで取り込んでしまうプログラマもいるみたい。
(そういう人は影で笑っておけば・・・済まないか w)

50 :nobodyさん:02/12/27 07:12 ID:wZxYN2FO
DBD::Oracleって接続遅くない?

51 :nobodyさん:02/12/27 19:09 ID:???
>>49
>PHPもエラーメッセージがブラウザで確認されてしまうのが厄介。
>(というかカッコワルイ)
貴殿はPHPを使ったことが無いとお見受けしました。

52 :nobodyさん:02/12/29 13:20 ID:???
>>49
いらないモジュールuseしても問題ないだろ。

>CPANモジュールも普通にXで使うのなら便利なんだけど・・
xで使うねぇ・・・
貴殿はちょっとLinuxかじった房
だとお見受けしました。

53 :nobodyさん:02/12/29 15:27 ID:???
>>52
> いらないモジュールuseしても問題ないだろ。
いやー、問題ないとは言えないでしょ。
メモリの無駄だし、標準関数をオーバーライドするモジュールもあるし。
インストールは、ディスクが無駄な以外問題ないと思うけど。

>>49 の「取り込む」の意味が不明なので話の前提がわからんが、
49がアレだというのには同意する。


54 :nobodyさん:03/01/13 21:30 ID:GwIzQASu
DBIをもっと知ってほしいage

55 :山崎渉:03/01/15 13:32 ID:???
(^^)

56 :山崎渉:03/03/13 17:41 ID:???
(^^)

57 :nobodyさん:03/03/13 20:56 ID:tDY9NfKc
勉強するには本を買うしかないのですか?

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

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

あと、入門書として“入門Perl DBI”は最適でしょうか?


58 :nobodyさん:03/03/13 21:50 ID:???
インポート無しでuseすれば名前空間は汚れないし。。
自分の空間にしかインポートされないから、勝手に汚染されることはないじゃろ。

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

use hogehoge ();

59 :nobodyさん:03/03/13 21:56 ID:???
あぁ文章がめちゃくちゃだった。。

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

つまり、、、
use Module () と、require Moduleは、いつ読み込まれるか、っていう違い(コンパイル時、
実行時)はあるけれど、結果的には同じことがおきる。

60 :nobodyさん:03/03/13 21:59 ID:???
つまり結果が同じならどうでも良いんだってことよ。

61 :nobodyさん:03/03/14 00:56 ID:???
ふ〜ん。ま、そんなもんか。

62 :nobodyさん:03/03/14 02:37 ID:???
object の package って require しても使えるんだっけ?

63 :eval "require hoge;";:03/03/14 13:06 ID:YuEJwOb3
use → モジュールが読み込まれ、関数が自動的にインポートされる。返り値は?
require → モジュールが読み込まれるだけで、インポートはされない。成功すれば真の値をかえす。

という理解でいいかな。

64 :nobodyさん:03/03/14 15:05 ID:???
マジレスすると
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 が入るだけ。

65 :nobodyさん:03/03/14 22:37 ID:???
あぁ。そうかぁ。require時の初期化の時点で勝手に割り込むやつもいるのか。。

このあたりは、Perl教なら、リビングの法則でなんとか説明するところかな。(?)

66 :nobodyさん:03/03/19 10:36 ID:???
廃れてる・・・な。

67 :nobodyさん:03/03/30 17:35 ID:vpWCaSDo
DBD::Access誰か作ってくれないかなぁ。
てゆーか誰も作ってないってことは難しいのかなぁ。

68 :nobodyさん:03/03/30 17:51 ID:Uipu2S6m
ODBC 経由では無理だった?もしくは、ADOとか。

69 :67:03/03/30 18:01 ID:???
>>68
いや、今はWindowsXP+ActivePerl+DBD::ODBCなんですけど、
例えばLinuxのレンタルサーバーのUserディレクトリとかで
手軽に使えたらいいなーって思ったんですけど。

70 :nobodyさん:03/03/30 19:32 ID:???
SELECT文実行後にfinish しないとまずいですか?

71 :nobodyさん:03/03/30 21:02 ID:???
>>70
気になるならやっとけ。

72 :nobodyさん:03/03/30 21:14 ID:???
prepare_cachedを使うときはfinishしないと駄目。かも。

73 :nobodyさん:03/04/07 00:02 ID:btpU8pX3
Perlを256倍使うための本DBI編買ったよ。
てゆーかPerlの256本ってこれだけだよね?
Rubyはいっぱい出てるのに。

74 :nobodyさん:03/04/15 23:44 ID:Tnm/ZADI
DBD::CSVはPure PerlだからTelnet使えないレンタル鯖で
使えるかと思いきや、中でText::CSV_XS使っているという罠。

75 :山崎渉:03/04/17 12:01 ID:???
(^^)

76 :nobodyさん:03/04/20 00:04 ID:CCxtB9hm
DBD::Template使ったことある香具師いる?
あれいいね。

77 :山崎渉:03/04/20 00:29 ID:???
(^^)

78 :動画直リン:03/04/20 00:40 ID:dAQHn3gv
http://www.agemasukudasai.com/movie/

79 :山崎渉:03/04/20 05:57 ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

80 :山崎渉:03/05/22 02:08 ID:???
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―

81 :山崎渉:03/05/28 17:17 ID:???
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉

82 :nobodyさん:03/05/30 14:30 ID:I8fiUs9e
どうしてもCSVファイルにDBI使いたくてDBD::CSVやDBD::Spriteを
試したんだけど、どうしてもベンチマークとると速度が遅い。
やっぱりSQL解析部分で時間食うみたいだった。
しょうがないのでSQL解析部分を自作して速度の問題を解決。
DBDは一から作るのめんどいのでDBD::Templateを使いました。
もうこれからは掲示板だろうがなんだろうがDBI使い倒してやる。


83 :nobodyさん:03/05/31 06:20 ID:rt7PEdog
>>82
速度改良されたpmファイルアップキボンヌ


84 :nobodyさん:03/05/31 23:01 ID:oQuJYHeZ
あなたが探してる話題あれはこれでしょ♪
http://endou.kir.jp/betu/linkvp/linkvp.html
http://s-rf9.free-city.net/page006.html

85 :82:03/06/03 16:07 ID:lz5wO9wK
DBD::Templateを使ったサンプルをUPしておきました。
SQL解析部分は見てもらえば分かりますが「ナンチャッテSQL解析」なので、
自分のプログラムに合わせて処理を付け足す必要があります。
速度とプログラムの汎用性という意味では自分的には実用的かと思います。

http://webcolle.minidns.net/perl/


86 :nobodyさん:03/06/06 11:28 ID:???
>>85
すばーらスィ!!!!!!
sql文の練習に使えます。ありがと。
こんど、オンラインでやってみます。
postgressql+pg.pmでやるのとどっちが速いかは、
やっぱデータ量によるんでしょうね。


87 :82:03/06/06 16:33 ID:q9w0p8v1
>>86
所詮データはCSVファイルなので本物のRDBMSとは比較になりません。

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

メリットはこんなところでしょうか。
ちなみにテーブル定義とSQL解析はプログラムごとに
付属のdbisub.plをいじらなければなりませんので。


88 :nobodyさん:03/06/06 22:17 ID:???
>>87
ところで、川合さんの「PerlでDBI」(256倍シリーズ)買ったけど、ちょちょっ
と見ると、DBDの分類で、「自作系 (1)sqlの解析にSQL::Statementを利用」
の中に、DBD-CSVってのがある(DBD-Fileを継承)けど、>>85のは、それの兄弟
のようなものかね。



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

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

なんか作者でもないのに勝手に宣伝してるみたいでなんか
悪いことしてる気がしてきた・・・

90 :nobodyさん:03/06/10 07:48 ID:???
>>89
いえ。ぜんぜん気にせんといてくらさい。


91 :山崎 渉:03/07/15 11:13 ID:???

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

92 :nobodyさん:03/07/24 20:46 ID:???
あげとく

93 :nobodyさん:03/07/24 21:41 ID:???
めんどくさくない?

94 :山崎 渉:03/08/02 02:24 ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

95 :ぼるじょあ ◆ySd1dMH5Gk :03/08/02 04:53 ID:???
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ

96 :nobodyさん:03/10/30 20:20 ID:MsIzuyZ0
誰かDBD::Access作ってよ。
DBD::ODBC使えって?UNIXでも使いたいんだよ。

97 :nobodyさん:03/11/01 19:09 ID:ryreETR0
DBIでトランザクション処理ってどのようにやるんですか?

98 :nobodyさん:03/11/01 19:40 ID:???
終了。

99 :nobodyさん:03/11/06 11:41 ID:+rjyvfMX
勝手に終わらすな

100 :nobodyさん:03/11/07 12:36 ID:???
AutoCommit をoff(0)にしたら
それ以降は、commit するまで1つのトランザクション

101 :97:03/11/11 23:17 ID:???
>>100
遅レスですがありがとうございます。

102 :nobodyさん:03/11/20 16:24 ID:5vqTDfsp
DBモジュールの件で質問ですが、PostgreSQLのgetvalueって、
MySQLではどういった形になるのでしょうか。
只今移行中です。
MySQLの場合はfechrowはあるのですけどgetvalueが無いので
困ってます。

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

どうか教えてください。

103 :nobodyさん:03/11/20 16:44 ID:???
FreeBSD の compat/linux 環境で Oracle 9i の DBD::Oracle を
build できた経験のある人っていませんか?

104 :nobodyさん:03/11/20 18:17 ID:???
>>102
なんかあちこちで見かけるなw
selectall-xxx とかじゃだめかねえ

105 :nobodyさん:03/11/20 20:45 ID:???
>>104
selectrowにしました。
ありがとうございました。

106 :nobodyさん:04/01/01 17:37 ID: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って関数使えば良いらしいけど、使い方が良くわかりません。
識者の方々殿。 よろしくお願いします。

107 :nobodyさん:04/01/01 17:59 ID:???
>>106
http://www5a.biglobe.ne.jp/~n_rieko/perl/8.htm

- $word =~ tr/'/\\\'/;
+ $word =~ s/'/\\'/g;

108 :106:04/01/01 18:13 ID:P0LnBj0e
>>107
出来たー! 有難う。 昨日からずーーっとこれでハマッってたっす。
ところで - と + ってどういう意味?

109 :106:04/01/01 18:29 ID:P0LnBj0e
あ、わかった。 trは1文字づつそれぞれ評価されて置換されるってことね。
AFOでスマソ

110 :nobodyさん:04/01/01 19:11 ID:???
>>108
> ところで - と + ってどういう意味?
unified diff

ところで確認せずに言うけど
$sth = $mydb->prepare("insert into $TABLE_name values (?)");
$sth->execute($word);
ってやったら勝手にエスケープされんかい?

111 :nobodyさん:04/01/02 18:27 ID:???
>>106
「perl dbi プレースホルダ」でググれ


112 :106:04/01/03 12:41 ID:2IxFJ5oW
>>110
出来ました。勉強になりました。
ありがとうございます。

113 :nobodyさん:04/01/15 19:42 ID:AedXtgQu
while (@row = $sth->fetchrow_array) {
push @array,$row[0];
}
print join(" ",@array);

これでレコードは全て数値で返ってくるとして、レコードが無い場合には
0を挟むようにしたいのですが、たとえば5個レコードがあると仮定して
3番目がNULLの場合には

3 4 0 52 1

でも実際には

3 4 52 1

と出力されてしまいます。
どうやったらレコードがNULLなのかどうか判断できるのでしょうか。


114 :nobodyさん:04/01/15 22:17 ID:???
push @array,$row[0] ? $row[0] : 0;

115 :113:04/01/15 23:06 ID:AedXtgQu
>>114
なるほど。ありがとうございます。

3番目がNULLの場合ではなく、3番以降が全てNULLだとすると

3 4 0 0 0

と期待したいところ、4回目で既にレコードがないためにwhileの
ブロック内が実行されずに

3 4 0

となってしまいました。これを期待通りに出力するにはどうしたら
いいのでしょうか。

116 :nobodyさん:04/01/15 23:58 ID:???
>>115
print join " ", map $_ + 0, @array[0..4];

以降 Perl の基本的な質問はこちらへ。
http://pc2.2ch.net/test/read.cgi/php/1072896288/

117 :113:04/01/16 20:36 ID:???
while (@row = $sth->fetchrow_array) {
push @array,$row[0]?$row[0]:0;
}
print join(" ",map $_ + 0,@array[0..4]);
としてみたのですが、レコードが無いと、whileブロック内が実行されないため
3 4 0 52 1
ではなく
3 4 52 1 0
になってしまいました。結局
$sth->fetchrow_arrayが必ずレコードを返すようにselect文を修正しました。
ありがとうございました。

118 :nobodyさん:04/01/30 01:13 ID:???
Apache::DBI 環境下での DBI::Proxy ってどのくらいの枯れぐあいですか?

曖昧な質問しても応えづらいとは思うのですが、
運用されてる方の「幸せになった話」や「なんでやねん話」を
お聞かせ願いたい。


119 :nobodyさん:04/01/30 09:32 ID:???
そもそも mod_perl 自体が枯れてないし。

120 :nobodyさん:04/01/30 21:29 ID:DOZLZjLQ
ageてみるー

121 :nobodyさん:04/02/01 12:13 ID:nycEgmtE
プレースホルダにNULL値をバインドさせたいときはどうやるのでしょうか?
name:text(文字型)
regist:date(日付型)
のとき
$sth = $dbh->prepare("INSERT INTO staff (name, regist) VALUES (?, ?)");
$name= "hoge";
$regist = NULL;
$sth->execute($name, $regist);
だと上手くいかないのです

122 :nobodyさん:04/02/01 12:57 ID:V0LjMB45
Apache::DBI入れてみました。
個々のCGIがDBに接続するときのユーザやパスワードって皆さんどこに書き込んでいますか?
CGIにそれぞれ書き込んじゃってもいいのですが、分散するし危険な気もするので
人目にさらされない場所で一カ所で管理したいと思っています。
みなさんどうやってます?

123 :nobodyさん:04/02/01 13:16 ID:???
>>121
つか多分それ strict 通んないだそ
>>1 にリンクされてる「DBI.pm 日本語訳」ページから 'NULL' を探せ

>>122
接続用のクラスを作ってそこに書き (/usr/local/lib/perl とかどっかその辺に)
DB 使う CGI は全部それを use してる

124 :nobodyさん:04/02/01 15:55 ID:nycEgmtE
>>123
的確な指摘ありがとうございます
バッチリ上手くいきました


125 :nobodyさん:04/02/05 15:37 ID:yM4BLX2X
use DBI;

$DB = "hogedb";
$User = "hogeuser";
$Passwd = "hogepass";

$dbh = DBI->connect("DBI:mysql:$DB:localhost", $User, $Passwd);
$login_id = $dbh->quote($login_id);
$sql = "select Cust_kanji from bb_k where login_id = " . $login_id ;
$sth->prepare($sql);
$sth->execute;

@get_data = $sth->fetchrow_array;
$Cust_kanji = $get_data[0];
$sth->finish;
$dbh->disconnect;

とやってるだけなのに、

Can't call method "prepare" on an undefined value at /u/web/bblabc/cgi-local/friends/intro_popuppreview.cgi line 56.
と怒られてしまいます。

原因として何が考えられるのでしょうか?
いろいろ調べたもののわかりませんでした。

それと不思議なのが、
同じサーバの別のスクリプトで、
DBIでMysqlにつなげて成功している場合があるということです。

どなたか教えていただければ幸いです。

126 :nobodyさん:04/02/05 17:01 ID:???
>>125

$sth って何が入ってるの?


127 :125:04/02/05 17:27 ID:???
>>126
$sth->prepare($sql);
じゃなくて、
$sth = $dbh->prepare($sql);
の間違いでした。。。すみません。
まだ、DBI歴2日なもので。。。
ありがとうございます。

128 :nobodyさん:04/02/07 02:17 ID:7x+8FZeN
DBIで掛かった時間て取得できないのでしょうか?
コマンドラインで実行したサイの
「ex:6 rows in set (0.05 sec)」
〜secみたいなやつ


129 :nobodyさん:04/02/07 18:29 ID:???
>>128
かなり昔に使っただけだし若干狙いが違うかもしれないが、DBI配布キットにプロファイラがある。
perldoc DBI::Profile
見てみれ

130 :nobodyさん:04/02/07 20:40 ID:???
>>129
どうもうです。みてみます。

131 :118:04/02/09 22:00 ID:r2jpV3Tk
ちまちまApache::DBIを触ってみてるんですが、
これって同じリモートDBマシン上の複数のDBへの接続を
キャッシュできないんですか?

マニュアルには「接続を定義するパラメータは接続属性も含めて
まったく同じでなければなりません」とあり、実際に

 DBI:Proxy:hostname=192.168.0.1;port=1234;dsn=dbi:Pg:dbname=hoge1
 DBI:Proxy:hostname=192.168.0.1;port=1234;dsn=dbi:Pg:dbname=hoge2

という二つの接続属性による接続を作成しても、二つ目はDBIが
panic: DBI active kids..... てな感じでエラーを吐くようなんですが。

すごくそんな訳無いやん、って気もするんですが、
そういうものなんでしょうか?


132 :131=118:04/02/09 22:14 ID:r2jpV3Tk
あ、いや、違いますね。
問題なのはDBI::ProxyかDBDみたい。。。


133 :Hippo2000:04/02/23 00:49 ID:IskmOTa+
>>131
テストする直接DBD::Pgを利用するように変えてみては?
DBD::Proxy-DBI::ProxyServerをApache::DBIで利用するのは、ちょっと酷な気がします。
(そっちのほうがボトルネックになるでしょう)

134 :Hippo2000:04/02/23 01:01 ID:IskmOTa+
>>96
DBD::ODBCはUnixでも使えますけど?
MDBToolsのプロジェクトがODBCドライバを出したという話は聞いてますし、
先日、Timさんがこんなメール書いてましたけど反応なかったみたいです。

Accessing Access .mdb databases from unix (was: MS Access)
 http://www.mail-archive.com/dbi-dev@perl.org/msg02755.html

MDBToolsのソースを解析しようと思ってたけどODBCドライバがあるなら
もういいかなと。

135 :131:04/02/23 23:50 ID:wtoD45ZJ
>>133

DBD::Proxyを使ってみようと思ったのはDBに接続するアプリケーションサーバが
増えたときに、コネクションの制御が(漠然と)しやすいかなと思ったのと、
接続の取得クラスをSingletonパターンで実装するとコネクションプーリングが
実現できるかもしれないかなと思ったためです。
# Apache::DBIをよく理解してなかったことも有りますが...

結局あまり詳しく追求しませんでしたが、動作が不安定なので
とりあえずは直接接続以外の方法は検討しない事にしました。


136 :nobodyさん:04/03/06 11:22 ID:7pY4exk3
すません。質問っす。
たとえばゲームのレビューを書くようなホームページを作ろうとして、
それをhtmlのページのフォームから必要な情報(ゲーム名、ゲーム会社とかレビュー内容とか)を書き込んで
それをサーバー側にデータとして蓄積していきます。
そして閲覧者が見る時に、そのゲーム名やゲーム会社名で検索できるようにするには
どのような技術を使えばよいのでしょうか。
ちなみにperlもいまいちですし、データベースの知識はミジンコくらいです><
環境は…パソコンはXPで、サーバーは有料のレンタルです。そこはperl、phpが使えるようです。
なにとぞm(__)m

137 :nobodyさん:04/03/06 12:41 ID:???
perlかphpを使えばいいじゃん。

138 :nobodyさん:04/03/06 14:19 ID:???
パンが無いのならお菓子を食べればいいのに

139 :nobodyさん:04/03/06 17:22 ID:???
なぜこのスレで聞こうと思ったのかそこに興味がある

140 :nobodyさん:04/03/06 18:06 ID:???
データベースだろうと、勝手に脳内変換して、DBIスレに書き込んじゃったとか。

141 :nobodyさん:04/03/06 23:21 ID:???
あ、ここ場違いだった??><
別で聞きます…すません。

142 :nobodyさん:04/03/07 01:25 ID:???
別で聞いてもオマイの質問じゃ碌な答えはかえらねぇよ

143 :nobodyさん:04/03/07 02:51 ID:FpUwyDyc
DBIじゃなくて、Pgモジュール使ってるんですが、
Perlで扱うスレで誘導されてるんで、こっちで質問させてください。

Perlから、use PgでPostgre SQLにinsertするのを書いているんですが、
なぜか登録できません。(接続はできています。)

登録するカラムが26もあるのが原因なのかと悩んでいるんですが、
何か原因考えられませんか?

ちなみに、カラムを3,4個に減らすと登録できるんです。

使ってるデータ型は、text,smallint,bool,dateだけです。

144 :nobodyさん:04/03/07 12:49 ID:???
登録できない場合にエラーが出てないかをまず確認すること

145 :143:04/03/07 16:36 ID:???
if ($result->resultStatus !

146 :143:04/03/07 16:41 ID:5iK4kpNa
切れてしまったので、再度

if ($result->resultStatus != PGRES_COMMAND_OK) {

print "$result->resultStatus";

}

を実行したら7と表示されました。(=は半角)

これは、PGRES_NONFATAL_ERRORということでいいのでしょうか?

147 :nobodyさん:04/03/07 18:28 ID:???
>>146
ということでよさげだが、PGRES_NONFATAL_ERROR だけでは何が起きてるのかわからんな…
たぶん詳細なメッセージが stderr なりエラーログなりに出てると思うのだが、確認できん?

なんとなくSQL文の長さ制限に引っかかってるんじゃないかという気がするのだが自信は無い

148 :146:04/03/07 21:16 ID:5iK4kpNa
早速のレスありがとうございます。

SQLのstderrはどうしたら見られるのでしょうか…?

トクトクプロフェッショナルでやってるので、telnetは使えるのですが、エラーログとかはルートじゃ無くてもOKなのでしょうか?

SQL文の流さ制限は8KB以下でいいですか?これだと8192文字には行ってないはずです。

モジュールに渡せる制限とかもあるのでしょうか?

色々書いてしまいましたが、御教授お願いします。

149 :nobodyさん:04/03/07 21:22 ID:???
$conn->errorMessage

じゃなかった?

最近はDBI&DBD−Pgばかりだから忘れた

150 :148:04/03/08 04:02 ID:???
なんか、深夜にやったら動きました。

自分でもなんでって感じなんですが、サーバーの負荷と関係あるんでしょうか?

ちなみに$conn->errorMessageは使えませんでした。

ともかくプログラム自体は合っているようなので、暫く様子見ることにします。ありがとうございました。

151 :nobodyさん:04/03/08 06:53 ID:???
>トクトクプロフェッショナルでやってるので、
この辺が理由の気がする。

152 :150:04/03/09 05:20 ID:???
tok2 proが原因ですか…?

確かについ最近まで設定ミスでRDB使えない設定になってましたし、ずさんなとこが多いのは事実のような。

でも、トラフィックはめちゃめちゃな訳では無いし、安めで色々使えるので気に入ってるのですが、他にオススメのトコありますか?

自鯖立てろは無しで…。

153 :nobodyさん:04/03/10 10:25 ID:???
errstrは?

154 :nobodyさん:04/03/15 22:17 ID:5hxMa2mE
>>152
XREAとかな。
これ以上はレンタル鯖板に行って探すか、
自鯖板行って勉強するかだな。

155 :131=135:04/03/16 01:14 ID:4QG7B2dV
database connection pooling は dbi の世界ではある種宗教的な問題でも
あるようで、この辺↓とか読みつつなるほどと思ったり。
ttp://mathforum.org/epigone/modperl/breetalwox/38B4DB3F.612476CE@acm.org

でも、プールしたいという想いを偽る事ができない方も多いかと思ったので参考まで。

ResourcePool by Markus Winand
ttp://search.cpan.org/~mws/
ttp://www.perldesignpatterns.com/?ResourcePool (ref

Apache-Sybase-ConPool by Michael Peppler
ttp://search.cpan.org/~mewp/

SQL-Relay
ttp://sqlrelay.sourceforge.net/


決してプロセス単位の接続永続化との比較ベンチをとる神光臨を待ってる訳じゃないですw


156 :nobodyさん:04/03/31 23:28 ID:???
mod_auth_dbiのApache2用って無いのかな?

157 :nobodyさん:04/05/02 03:28 ID:???
DBD::Pg使ってますが、executeのあとにfinishしないと
まずかったりしますか?
今書いてるソース、すべてつけていないもので、、、

158 :nobodyさん:04/05/11 22:42 ID:???
某所でスレ違いと言われこちらに誘導されこちらにも書かせてもらいますが、

MySQLをPerlから操作しようとしました。
そしたらinstall_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC ...
とエラーがでました。
恐らくモジュールが入ってないのかと思いますが
どうすればインストールできるでしょうか。
一応、Msql-Mysql-modules-1.2219と言うのをDLしてきましたが
root権限など持っていないので説明にある方法ではインストールできません。
cgiとおなじフォルダにmysql.pmを置いてやれば動くような気もしますが
取り敢えず/mysql/libの中身をまるごと置いてやっただけでは動きませんでした。

159 :nobodyさん:04/05/11 23:50 ID:???
DBI落としてきて、make install

160 :nobodyさん:04/05/12 07:05 ID:???
>>159
root権限を持っていないのでその方法では出来ません。

161 :nobodyさん:04/05/12 09:20 ID:???
自分のフォルダへインストールしませう

162 :nobodyさん:04/05/12 09:20 ID:???
s/フォルダ/ディレクトリ/

163 :nobodyさん:04/05/12 12:09 ID:???
perl Makefile.PL したあと、できた Makefile を手で書き換える

164 :nobodyさん:04/05/12 12:56 ID:???
http://member.nifty.ne.jp/hippo2000/perltips/module_install.htm

165 :nobodyさん:04/05/12 17:30 ID:???
DBI mysqlを利用しています。
名前「no」というカラムをauto_incrementで作成してinsertすると
「no」は自動的にインクリメントされていきますがinsertと同時に
今insertしたレコードの「no」を取得する方法はありますでしょうか?
現在は
1,insertする
2,一番最後のレコードの「no」取得する
という方法をしていますがもし1と2の間にinsertされると別の「no」を
取得してしまうことになります。1〜2の間でロックを行えば解決しますが
1回のSQL発行でinsertと「no」の値を取得できるようなことは出来るのでしょうか?

166 :nobodyさん:04/05/12 17:49 ID:???
すみません自己解決しました。
http://dev.mysql.com/doc/mysql/ja/ODBC_and_last_insert_id.html

INSERT INTO GIRLS_DATA (no, name) VALUES(NULL, 'nobodyさん');
SELECT LAST_INSERT_ID();

167 :158:04/05/12 20:10 ID:???
>>159-164
無事、使う事ができるようになりました。有難うございました。



ところで、インストールしたファイルにNullP.pmと言うファイルが有りましたが
ガッしておいたほうが良いですか?

168 :nobodyさん:04/08/05 13:25 ID:???
日付の加減算などを行う関数はMySQLとPostgreSQLで異なるようですが
DBIを経由すれば問題なく動くのでしょうか?

169 :nobodyさん:04/08/06 00:05 ID:???
DBI は、プログラマが用意したSQL文をDBMSに投げる部分を共通化しているだけなので、
DBMSの方言に合わせたSQL文を書くのはプログラマの責任

DBIx系だとSQL方言の違いまである程度吸収してくれるモジュールがあるが
日付関数のはさすがに無いかもしれないなあ

170 :168:04/08/09 13:45 ID:???
>>169
AUTO_INCREMENTで自動付加された値を取り出す場合、
MySQLの場合「LAST_INSERT_ID()」を使いますが、PostgreSQLの場合は
「curval('targetname')」のように行うようです。
いまはプログラムでDBに合わせてsql文を変えています。(Win環境なのでPostgresSQLは使えません・・・)
このあたりも、DBIが吸収してくれますか?

171 :nobodyさん:04/08/09 14:59 ID:???
SELECT文の実行結果CSV形式のファイルに保存したいのですが
コマンドは用意されていますか?
自分で作るのもそう手間ではないのですが・・・。

172 :nobodyさん:04/08/19 13:37 ID:???
root権限の無い環境で、DBI/DBDを使いたいのですが、
他の環境でコンパイル済みのものをコピーして
パスを通してやれば問題なく動くのでしょうか?

173 :nobodyさん:04/08/20 00:00 ID:???
(´-`).。oO(なぜ試さないのだろう・・・)

174 :nobodyさん:04/09/23 13:51:31 ID:8pWVerC9
age

175 :nobodyさん:04/11/24 21:43:11 ID:???
webProgじゃあないけど、ここが一番perl DBIの話にふさわしそうなので。
DBI:ODBC バグってるっぽい、ってのは気のせいでつか・・・?!
ActivePerl5.8/MySQL4.1.7の組み合わせで使ってて判明
確信持てないのでわかる香具師教えてくらはいな。
my $dataSource = "DBI:ODBC:test";
$dbh=DBI->connect($dataSource, $userName, $pass) || die "connect die:$!";
$sth = $dbh->prepare($query);
$sth ->execute($param) || die $dbh->errstr;
while (@row = $sth->fetchrow_array){
foreach $temp(@row){
print $temp . "\t";
}
}
ってやった結果が変なのでデバッガで見てみたら、@rowの中身が壊れてた。
テーブルの中身はほかのODBCクライアントで確認、異常なし。
壊れてたのは$queryで指定している3番目のカラムで、DB上ではvarchar(20)。
壊れてたデータは、8桁の数字の後に文字列が付いているというもので、数字だけになってた。
foreach部をdumpだっけ、書き換えてDBD側のエラーが出てきたような記憶がある。
それともActivePerl ppmパッケージのみのバグなんでしょうか・・・?

176 :nobodyさん:04/11/25 03:03:01 ID:???
mysql使うならdbimysql使えばいんでないの?

177 :175:04/11/25 09:38:47 ID:???
>176
ああごめんなさい、それで動いてからのカキコです。
けど、同じODBC接続でもCSEはちゃんとデータとって来れてるし、あれっ?と思って。

178 :175:04/11/29 23:58:45 ID:SyWDmi2S
教えて君上げ

179 :nobodyさん:04/12/13 09:37:18 ID:LQJcn1sJ
DBD::CSVって最新版ではトランザクションは使えるんだっけ?

180 :nobodyさん:04/12/14 18:00:43 ID:gx135s3/
mysqlのバージョンが4.0.22なのですが
TIMEDIFF(expr,expr2)みたいなことをしたい場合どうしたらいいでしょうか。
そうしたい場合はperlで得るepoctimeの値を保存するべき?

41 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)