Perl::DBI
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/03/12 23:35ID:xHkBB9i/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
0002nobodyさん
02/03/12 23:43ID:???まだ見てないけど。
ところで、Perl::DBI って書き方あるの?
0003nobodyさん
02/03/12 23:51ID:???Perl::DBIは今考えた。
Perl-DBIとかPerl/DBIじゃしっくりこないかと思って。
00042
02/03/13 00:06ID:???0006nobodyさん
02/03/13 14:45ID:???「Perlを256倍使うための本 DBI編」
http://www.ascii.co.jp/books/detail/4-7561/4-7561-4058-0.html
00085
02/03/13 21:48ID:???買ってみることにするよ
これもいちおうはとこう
「入門 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マニアな内容でイイです。
まだ前半しか読んでないけど、英訳すれば英語圏でもちゃんと売れそうな内容っすね。さすが。
で、ジョーク(?)が日本固有なものじゃないのは、著者の川合さんがその辺を想定してるからかな。
0011nobodyさん
02/03/15 17:16ID:???00125
02/03/17 01:36ID:???EffectivPerlわかるくらいのひとなら
かなりおもしろいはず。
DBIて奥深いね。
001311
02/03/17 15:50ID:???流石に濃いね。
でも256本の特徴なのか
<BIG>こんなの</BIG>
が沢山あるのが読みにくい…。
0014nobodyさん
02/03/18 22:10ID:IpsHW25p0015nobodyさん
02/03/19 21:17ID:w47YlbXsPostgreSQL本はよく見かけるんですが…
001615
02/03/19 21:34ID:w47YlbXsPHPとの組み合わせがメインのものが多くて・・
0017nobodyさん
02/04/01 20:39ID:s5HvuRgH"MySQL & mSQL"っしょ。
http://www.oreilly.co.jp/BOOK/msql/
0019nobodyさん
02/04/16 13:05ID:kcYOQBmcこの辺の構造に誰も文句いったことないんかね?
0022nobodyさん
02/06/09 20:05ID:6X1lutDFhttp://www.cuppy.co.jp/sitemap/sitemap.html
0023nobodyさん
02/07/21 12:25ID:???0024nobodyさん
02/07/21 12:26ID:???貼り忘れ
0025nobodyさん
02/07/21 12:28ID:???ココにも、そういえばMySQL+Perlの組み合わせのサーバーってあまりないんだっけ
0027nobodyさん
02/09/25 23:18ID:???らしいね。結城さんの連載と入れ替わりなのかな。
読んだヒトいる? 漏れはプローガ先生の記事が無い
Cマガは買う気がしないけど。
0028nobodyさん
02/10/13 16:49ID:???0029nobodyさん
02/11/02 05:11ID:o+t0cR8MMYSQL+Perl(DBI/DBD)で開発することについて
「そのようなやり方は聞いたことがありませんねぇ。
普通はMYSQL+PHPですよ。」
とか言ってたんだけどそんなにMYSQL+Perl(DBI/DBD)
ってマイナーなやり方なのかな?
それともそいつが勉強不足なだけ?
0030nobodyさん
02/11/02 06:25ID:???ドメインによって色々な「普通」有るからなぁ。
大抵の奴が自分の属しているドメインの「普通」が
普通だと思ってるからたちが悪い。
003129
02/11/03 23:56ID:Ma5qtI8Bもうちょっと勉強しろと言いたい。
0032nobodyさん
02/11/04 00:17ID:???単に Perl を避けているだけでは? 漏れの周りには、
「Perl ってモジュールとか入れなきゃいけないか
ら面倒じゃないですか。PHP が簡単だから PHP に
しましょうよ」なんて言うヒトもいる。そんなレベ
ルの話じゃないのかな?
「普通」なんて言い方は、自分の常識を押し付けた
いときに使うよ。漏れの場合(w
0033nobodyさん
02/11/04 00:59ID:???0034nobodyさん
02/11/08 17:14ID:4WbT0AlfPostgreSQLのシーラカンス本では、Ruby、JSP、PHPなどとの
連携は紹介されているのにPerlとの連携に関しては触れられてない。
なんでだよ!
0036nobodyさん
02/11/18 00:41ID:+Oj37AkT思ったのですが、DBIとDBDのモジュールのインストールが
難しい。よく分からないエラーがでてしまいます。
成功してる人、教えて!!!
0038nobodyさん
02/11/24 23:55ID:nYY6oDGdDBI-Japanで聞けば河合さんが教えてくれると思うよ?
http://member.nifty.ne.jp/hippo2000/dbi/dbi_japan.htm
「よく分からないエラーが出てしまいます」じゃ誰だって教えられないよ。
0041nobodyさん
02/12/14 17:32ID:R1uTGzYK0042nobodyさん
02/12/14 20:27ID:???0043nobodyさん
02/12/14 21:21ID:???排他処理が不安で使ってない香具師
0044名無しさん@お腹いっぱい。
02/12/14 22:14ID:???ログ100件ぐらいだったらファイルで充分だったりする。
0045nobodyさん
02/12/15 01:44ID:???パフォーマンス出せたりする。
DBI DBDはインストールできればあとはSQLの書き方なわけで
DBIは常用していても話題がないのよ。
0046nobodyさん
02/12/17 08:30ID:PsoYCNCf最近、DBD::CSVがバージョンアップしてJOINもできるようになったYO!
とか色々あるだろ。なんか、PHPはDBとの連携ができるけどPerlは
できないとか変な偏見があるみたいだからちょっと悔しかったりする。
0048nobodyさん
02/12/19 20:40ID:???かわいそうな人達なのでやさしく教えてあげてください。
0049nobodyさん
02/12/27 03:32ID:s3+SF1Z2Perlはプログラマによって非常に観やすくいい仕事するCGIと
非常に乱雑で適当に仕事するCGIに大きく分かれるよね。
PHPもエラーメッセージがブラウザで確認されてしまうのが厄介。
(というかカッコワルイ)
CPANモジュールも普通にXで使うのなら便利なんだけど・・
ウェブサイト用CGIとして使うと余計なモジュールが多すぎてヘタすりゃ
いらないモジュールまで取り込んでしまうプログラマもいるみたい。
(そういう人は影で笑っておけば・・・済まないか w)
0050nobodyさん
02/12/27 07:12ID:wZxYN2FO0051nobodyさん
02/12/27 19:09ID:???>PHPもエラーメッセージがブラウザで確認されてしまうのが厄介。
>(というかカッコワルイ)
貴殿はPHPを使ったことが無いとお見受けしました。
0052nobodyさん
02/12/29 13:20ID:???いらないモジュールuseしても問題ないだろ。
>CPANモジュールも普通にXで使うのなら便利なんだけど・・
xで使うねぇ・・・
貴殿はちょっとLinuxかじった房
だとお見受けしました。
0053nobodyさん
02/12/29 15:27ID:???> いらないモジュールuseしても問題ないだろ。
いやー、問題ないとは言えないでしょ。
メモリの無駄だし、標準関数をオーバーライドするモジュールもあるし。
インストールは、ディスクが無駄な以外問題ないと思うけど。
>>49 の「取り込む」の意味が不明なので話の前提がわからんが、
49がアレだというのには同意する。
0054nobodyさん
03/01/13 21:30ID:GwIzQASu0055山崎渉
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:???自分の空間にしかインポートされないから、勝手に汚染されることはないじゃろ。
どうせモジュールなんて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:???0063eval "require hoge;";
03/03/14 13:06ID:YuEJwOb3require → モジュールが読み込まれるだけで、インポートはされない。成功すれば真の値をかえす。
という理解でいいかな。
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:???このあたりは、Perl教なら、リビングの法則でなんとか説明するところかな。(?)
0066nobodyさん
03/03/19 10:36ID:???0067nobodyさん
03/03/30 17:35ID:vpWCaSDoてゆーか誰も作ってないってことは難しいのかなぁ。
0068nobodyさん
03/03/30 17:51ID:Uipu2S6m006967
03/03/30 18:01ID:???いや、今はWindowsXP+ActivePerl+DBD::ODBCなんですけど、
例えばLinuxのレンタルサーバーのUserディレクトリとかで
手軽に使えたらいいなーって思ったんですけど。
0070nobodyさん
03/03/30 19:32ID:???0072nobodyさん
03/03/30 21:14ID:???0073nobodyさん
03/04/07 00:02ID:btpU8pX3てゆーかPerlの256本ってこれだけだよね?
Rubyはいっぱい出てるのに。
0074nobodyさん
03/04/15 23:44ID:Tnm/ZADI使えるかと思いきや、中でText::CSV_XS使っているという罠。
0075山崎渉
03/04/17 12:01ID:???0076nobodyさん
03/04/20 00:04ID:CCxtB9hmあれいいね。
0077山崎渉
03/04/20 00:29ID:???0078動画直リン
03/04/20 00:40ID:dAQHn3gv0079山崎渉
03/04/20 05:57ID:???( ^^ )< ぬるぽ(^^)
0080山崎渉
03/05/22 02:08ID:???0081山崎渉
03/05/28 17:17ID:???ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0082nobodyさん
03/05/30 14:30ID:I8fiUs9e試したんだけど、どうしてもベンチマークとると速度が遅い。
やっぱりSQL解析部分で時間食うみたいだった。
しょうがないのでSQL解析部分を自作して速度の問題を解決。
DBDは一から作るのめんどいのでDBD::Templateを使いました。
もうこれからは掲示板だろうがなんだろうがDBI使い倒してやる。
0083nobodyさん
03/05/31 06:20ID:rt7PEdog速度改良されたpmファイルアップキボンヌ
0084nobodyさん
03/05/31 23:01ID:oQuJYHeZhttp://endou.kir.jp/betu/linkvp/linkvp.html
http://s-rf9.free-city.net/page006.html
008582
03/06/03 16:07ID:lz5wO9wKSQL解析部分は見てもらえば分かりますが「ナンチャッテSQL解析」なので、
自分のプログラムに合わせて処理を付け足す必要があります。
速度とプログラムの汎用性という意味では自分的には実用的かと思います。
http://webcolle.minidns.net/perl/
0086nobodyさん
03/06/06 11:28ID:???すばーらスィ!!!!!!
sql文の練習に使えます。ありがと。
こんど、オンラインでやってみます。
postgressql+pg.pmでやるのとどっちが速いかは、
やっぱデータ量によるんでしょうね。
008782
03/06/06 16:33ID:q9w0p8v1所詮データはCSVファイルなので本物のRDBMSとは比較になりません。
・CSVに対してSQLが使える。
・DBIを使うことでプログラムの汎用性がある。
・速度的にも掲示板のログ管理程度なら実用レベルである。
・PurePerlなのでレンタル鯖等でも使える。
メリットはこんなところでしょうか。
ちなみにテーブル定義とSQL解析はプログラムごとに
付属のdbisub.plをいじらなければなりませんので。
0088nobodyさん
03/06/06 22:17ID:???ところで、川合さんの「PerlでDBI」(256倍シリーズ)買ったけど、ちょちょっ
と見ると、DBDの分類で、「自作系 (1)sqlの解析にSQL::Statementを利用」
の中に、DBD-CSVってのがある(DBD-Fileを継承)けど、>>85のは、それの兄弟
のようなものかね。
008982
03/06/08 01:44ID:???↓のURL見た方が早いかもしれませんが、中身は本の中で紹介されてた
SomeFmt.pmを少しいじっただけだと思います。
http://www.hippo2000.info/cgi-bin/KbWiki/KbWiki.pl?cmd=disp&page=DBD%3a%3aTemplate
なんか作者でもないのに勝手に宣伝してるみたいでなんか
悪いことしてる気がしてきた・・・
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:MsIzuyZ0DBD::ODBC使えって?UNIXでも使いたいんだよ。
0097nobodyさん
03/11/01 19:09ID:ryreETR00098nobodyさん
03/11/01 19:40ID:???0099nobodyさん
03/11/06 11:41ID:+rjyvfMX0100nobodyさん
03/11/07 12:36ID:???それ以降は、commit するまで1つのトランザクション
0102nobodyさん
03/11/20 16:24ID:5vqTDfspMySQLではどういった形になるのでしょうか。
只今移行中です。
MySQLの場合はfechrowはあるのですけどgetvalueが無いので
困ってます。
PostgreSQLでのDBアクセスはPgモジュール、MySQLでは
http://www.atmarkit.co.jp/flinux/rensai/mysql04/mysql04a.html
この方法をとりました。
どうか教えてください。
0103nobodyさん
03/11/20 16:44ID:???build できた経験のある人っていませんか?
0106nobodyさん
04/01/01 17:37ID:P0LnBj0e$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:???http://www5a.biglobe.ne.jp/~n_rieko/perl/8.htm
- $word =~ tr/'/\\\'/;
+ $word =~ s/'/\\'/g;
0108106
04/01/01 18:13ID:P0LnBj0e出来たー! 有難う。 昨日からずーーっとこれでハマッってたっす。
ところで - と + ってどういう意味?
0109106
04/01/01 18:29ID:P0LnBj0eAFOでスマソ
0110nobodyさん
04/01/01 19:11ID:???> ところで - と + ってどういう意味?
unified diff
ところで確認せずに言うけど
$sth = $mydb->prepare("insert into $TABLE_name values (?)");
$sth->execute($word);
ってやったら勝手にエスケープされんかい?
0112106
04/01/03 12:41ID:2IxFJ5oW出来ました。勉強になりました。
ありがとうございます。
0113nobodyさん
04/01/15 19:42ID:AedXtgQupush @array,$row[0];
}
print join(" ",@array);
これでレコードは全て数値で返ってくるとして、レコードが無い場合には
0を挟むようにしたいのですが、たとえば5個レコードがあると仮定して
3番目がNULLの場合には
3 4 0 52 1
でも実際には
3 4 52 1
と出力されてしまいます。
どうやったらレコードがNULLなのかどうか判断できるのでしょうか。
0114nobodyさん
04/01/15 22:17ID:???0115113
04/01/15 23:06ID:AedXtgQuなるほど。ありがとうございます。
3番目がNULLの場合ではなく、3番以降が全てNULLだとすると
3 4 0 0 0
と期待したいところ、4回目で既にレコードがないためにwhileの
ブロック内が実行されずに
3 4 0
となってしまいました。これを期待通りに出力するにはどうしたら
いいのでしょうか。
0116nobodyさん
04/01/15 23:58ID:???print join " ", map $_ + 0, @array[0..4];
以降 Perl の基本的な質問はこちらへ。
http://pc2.2ch.net/test/read.cgi/php/1072896288/
0117113
04/01/16 20:36ID:???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文を修正しました。
ありがとうございました。
0118nobodyさん
04/01/30 01:13ID:???曖昧な質問しても応えづらいとは思うのですが、
運用されてる方の「幸せになった話」や「なんでやねん話」を
お聞かせ願いたい。
0119nobodyさん
04/01/30 09:32ID:???0120nobodyさん
04/01/30 21:29ID:DOZLZjLQ0121nobodyさん
04/02/01 12:13ID:nycEgmtEname:text(文字型)
regist:date(日付型)
のとき
$sth = $dbh->prepare("INSERT INTO staff (name, regist) VALUES (?, ?)");
$name= "hoge";
$regist = NULL;
$sth->execute($name, $regist);
だと上手くいかないのです
0122nobodyさん
04/02/01 12:57ID:V0LjMB45個々のCGIがDBに接続するときのユーザやパスワードって皆さんどこに書き込んでいますか?
CGIにそれぞれ書き込んじゃってもいいのですが、分散するし危険な気もするので
人目にさらされない場所で一カ所で管理したいと思っています。
みなさんどうやってます?
0123nobodyさん
04/02/01 13:16ID:???つか多分それ strict 通んないだそ
>>1 にリンクされてる「DBI.pm 日本語訳」ページから 'NULL' を探せ
>>122
接続用のクラスを作ってそこに書き (/usr/local/lib/perl とかどっかその辺に)
DB 使う CGI は全部それを use してる
0124nobodyさん
04/02/01 15:55ID:nycEgmtE的確な指摘ありがとうございます
バッチリ上手くいきました
0125nobodyさん
04/02/05 15:37ID:yM4BLX2X$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につなげて成功している場合があるということです。
どなたか教えていただければ幸いです。
0127125
04/02/05 17:27ID:???$sth->prepare($sql);
じゃなくて、
$sth = $dbh->prepare($sql);
の間違いでした。。。すみません。
まだ、DBI歴2日なもので。。。
ありがとうございます。
0128nobodyさん
04/02/07 02:17ID:7x+8FZeNコマンドラインで実行したサイの
「ex:6 rows in set (0.05 sec)」
〜secみたいなやつ
0129nobodyさん
04/02/07 18:29ID:???かなり昔に使っただけだし若干狙いが違うかもしれないが、DBI配布キットにプロファイラがある。
perldoc DBI::Profile
見てみれ
0131118
04/02/09 22:00ID:r2jpV3Tkこれって同じリモート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..... てな感じでエラーを吐くようなんですが。
すごくそんな訳無いやん、って気もするんですが、
そういうものなんでしょうか?
0132131=118
04/02/09 22:14ID:r2jpV3Tk問題なのはDBI::ProxyかDBDみたい。。。
0133Hippo2000
04/02/23 00:49ID:IskmOTa+テストする直接DBD::Pgを利用するように変えてみては?
DBD::Proxy-DBI::ProxyServerをApache::DBIで利用するのは、ちょっと酷な気がします。
(そっちのほうがボトルネックになるでしょう)
0134Hippo2000
04/02/23 01:01ID:IskmOTa+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ドライバがあるなら
もういいかなと。
0135131
04/02/23 23:50ID:wtoD45ZJDBD::Proxyを使ってみようと思ったのはDBに接続するアプリケーションサーバが
増えたときに、コネクションの制御が(漠然と)しやすいかなと思ったのと、
接続の取得クラスをSingletonパターンで実装するとコネクションプーリングが
実現できるかもしれないかなと思ったためです。
# Apache::DBIをよく理解してなかったことも有りますが...
結局あまり詳しく追求しませんでしたが、動作が不安定なので
とりあえずは直接接続以外の方法は検討しない事にしました。
0136nobodyさん
04/03/06 11:22ID:7pY4exk3たとえばゲームのレビューを書くようなホームページを作ろうとして、
それをhtmlのページのフォームから必要な情報(ゲーム名、ゲーム会社とかレビュー内容とか)を書き込んで
それをサーバー側にデータとして蓄積していきます。
そして閲覧者が見る時に、そのゲーム名やゲーム会社名で検索できるようにするには
どのような技術を使えばよいのでしょうか。
ちなみにperlもいまいちですし、データベースの知識はミジンコくらいです><
環境は…パソコンはXPで、サーバーは有料のレンタルです。そこはperl、phpが使えるようです。
なにとぞm(__)m
0137nobodyさん
04/03/06 12:41ID:???0138nobodyさん
04/03/06 14:19ID:???0139nobodyさん
04/03/06 17:22ID:???0140nobodyさん
04/03/06 18:06ID:???0141nobodyさん
04/03/06 23:21ID:???別で聞きます…すません。
0142nobodyさん
04/03/07 01:25ID:???0143nobodyさん
04/03/07 02:51ID:FpUwyDycPerlで扱うスレで誘導されてるんで、こっちで質問させてください。
Perlから、use PgでPostgre SQLにinsertするのを書いているんですが、
なぜか登録できません。(接続はできています。)
登録するカラムが26もあるのが原因なのかと悩んでいるんですが、
何か原因考えられませんか?
ちなみに、カラムを3,4個に減らすと登録できるんです。
使ってるデータ型は、text,smallint,bool,dateだけです。
0144nobodyさん
04/03/07 12:49ID:???0145143
04/03/07 16:36ID:???0146143
04/03/07 16:41ID:5iK4kpNaif ($result->resultStatus != PGRES_COMMAND_OK) {
print "$result->resultStatus";
}
を実行したら7と表示されました。(=は半角)
これは、PGRES_NONFATAL_ERRORということでいいのでしょうか?
0147nobodyさん
04/03/07 18:28ID:???ということでよさげだが、PGRES_NONFATAL_ERROR だけでは何が起きてるのかわからんな…
たぶん詳細なメッセージが stderr なりエラーログなりに出てると思うのだが、確認できん?
なんとなくSQL文の長さ制限に引っかかってるんじゃないかという気がするのだが自信は無い
0148146
04/03/07 21:16ID:5iK4kpNaSQLのstderrはどうしたら見られるのでしょうか…?
トクトクプロフェッショナルでやってるので、telnetは使えるのですが、エラーログとかはルートじゃ無くてもOKなのでしょうか?
SQL文の流さ制限は8KB以下でいいですか?これだと8192文字には行ってないはずです。
モジュールに渡せる制限とかもあるのでしょうか?
色々書いてしまいましたが、御教授お願いします。
0149nobodyさん
04/03/07 21:22ID:???じゃなかった?
最近はDBI&DBD−Pgばかりだから忘れた
0150148
04/03/08 04:02ID:???自分でもなんでって感じなんですが、サーバーの負荷と関係あるんでしょうか?
ちなみに$conn->errorMessageは使えませんでした。
ともかくプログラム自体は合っているようなので、暫く様子見ることにします。ありがとうございました。
0151nobodyさん
04/03/08 06:53ID:???この辺が理由の気がする。
0152150
04/03/09 05:20ID:???確かについ最近まで設定ミスでRDB使えない設定になってましたし、ずさんなとこが多いのは事実のような。
でも、トラフィックはめちゃめちゃな訳では無いし、安めで色々使えるので気に入ってるのですが、他にオススメのトコありますか?
自鯖立てろは無しで…。
0153nobodyさん
04/03/10 10:25ID:???0154nobodyさん
04/03/15 22:17ID:5hxMa2mEXREAとかな。
これ以上はレンタル鯖板に行って探すか、
自鯖板行って勉強するかだな。
0155131=135
04/03/16 01:14ID:4QG7B2dVあるようで、この辺↓とか読みつつなるほどと思ったり。
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
0156nobodyさん
04/03/31 23:28ID:???0157nobodyさん
04/05/02 03:28ID:???まずかったりしますか?
今書いてるソース、すべてつけていないもので、、、
0158nobodyさん
04/05/11 22:42ID:???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の中身をまるごと置いてやっただけでは動きませんでした。
0159nobodyさん
04/05/11 23:50ID:???0161nobodyさん
04/05/12 09:20ID:???0162nobodyさん
04/05/12 09:20ID:???0163nobodyさん
04/05/12 12:09ID:???0164nobodyさん
04/05/12 12:56ID:???0165nobodyさん
04/05/12 17:30ID:???名前「no」というカラムをauto_incrementで作成してinsertすると
「no」は自動的にインクリメントされていきますがinsertと同時に
今insertしたレコードの「no」を取得する方法はありますでしょうか?
現在は
1,insertする
2,一番最後のレコードの「no」取得する
という方法をしていますがもし1と2の間にinsertされると別の「no」を
取得してしまうことになります。1〜2の間でロックを行えば解決しますが
1回のSQL発行でinsertと「no」の値を取得できるようなことは出来るのでしょうか?
0166nobodyさん
04/05/12 17:49ID:???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();
0167158
04/05/12 20:10ID:???無事、使う事ができるようになりました。有難うございました。
ところで、インストールしたファイルにNullP.pmと言うファイルが有りましたが
ガッしておいたほうが良いですか?
0168nobodyさん
04/08/05 13:25ID:???DBIを経由すれば問題なく動くのでしょうか?
0169nobodyさん
04/08/06 00:05ID:???DBMSの方言に合わせたSQL文を書くのはプログラマの責任
DBIx系だとSQL方言の違いまである程度吸収してくれるモジュールがあるが
日付関数のはさすがに無いかもしれないなあ
0170168
04/08/09 13:45ID:???AUTO_INCREMENTで自動付加された値を取り出す場合、
MySQLの場合「LAST_INSERT_ID()」を使いますが、PostgreSQLの場合は
「curval('targetname')」のように行うようです。
いまはプログラムでDBに合わせてsql文を変えています。(Win環境なのでPostgresSQLは使えません・・・)
このあたりも、DBIが吸収してくれますか?
0171nobodyさん
04/08/09 14:59ID:???コマンドは用意されていますか?
自分で作るのもそう手間ではないのですが・・・。
0172nobodyさん
04/08/19 13:37ID:???他の環境でコンパイル済みのものをコピーして
パスを通してやれば問題なく動くのでしょうか?
0173nobodyさん
04/08/20 00:00ID:???0174nobodyさん
04/09/23 13:51:31ID:8pWVerC90175nobodyさん
04/11/24 21:43:11ID:???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パッケージのみのバグなんでしょうか・・・?
0176nobodyさん
04/11/25 03:03:01ID:???0177175
04/11/25 09:38:47ID:???ああごめんなさい、それで動いてからのカキコです。
けど、同じODBC接続でもCSEはちゃんとデータとって来れてるし、あれっ?と思って。
0178175
04/11/29 23:58:45ID:SyWDmi2S0179nobodyさん
04/12/13 09:37:18ID:LQJcn1sJ0180nobodyさん
04/12/14 18:00:43ID:gx135s3/TIMEDIFF(expr,expr2)みたいなことをしたい場合どうしたらいいでしょうか。
そうしたい場合はperlで得るepoctimeの値を保存するべき?
0181nobodyさん
2005/08/17(水) 02:05:25ID:???に番号フィールドのデータ全てを配列@aに格納、名前フィールドのデータを@bに格納するには
どう書いたらよいですか??
0182nobodyさん
2005/08/17(水) 02:11:32ID:5eFyQrDL0183nobodyさん
2005/08/17(水) 03:32:05ID:???http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLG,GGLG:2005-32,GGLG:ja&q=perl+dbi+sql
0184nobodyさん
2005/08/17(水) 04:51:15ID:E/ZVNZ3Kよろ
0185nobodyさん
2005/08/17(水) 04:52:55ID:???0186nobodyさん
2005/08/17(水) 07:12:49ID:???http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLG,GGLG:2005-32,GGLG:ja&q=perl+dbi+postgresql
0187nobodyさん
2005/08/20(土) 13:04:16ID:???0188nobodyさん
2005/12/02(金) 09:27:57ID:D04WUjX+>$dbh->{unicode} = 1; # fetchしたテキストフィールドのutf8flagがオン
命名のガイドラインに従うなら"sqlite_unicode"だろ。
0189nobodyさん
2006/02/24(金) 16:36:16ID:???わざとホスト名を間違えてエラーを出したのに、
undef が帰って来なくて die されてしまうんですがなぜでしょうか?
#!/usr/bin/perl
use strict;
use DBI;
my $dbh = DBI->connect( "dbi:Pg:host=aaaaa;port=5432;dbname=hoge", 'user', 'password' );
my $status = ( $dbh eq undef ) ? $DBI::errstr : 'ok';
print qq(content-type:text/html\n\n);
print $status;
exit;
この実行結果が 500 エラー。
connectできなかったら undef がくるのではないのか…
0190nobodyさん
2006/02/24(金) 17:03:13ID:j8E2zsnz500エラーだけじゃ情報が少なすぎるので、http鯖の
エラーログを見るか、
use CGI::Carp qw(fatalsToBrowser);
を使うか、自前でconnectをevalの中で実行して$@を
表示してみるなどして、どういうエラーが出てるかを
きちんと調べることをお勧めする。
0191190
2006/02/24(金) 18:17:21ID:???エラー処理を行おうと思っているのですが、undef が帰ってこなくて悩んでいます。
ですので、エラーの内容は特に何でもいい感じです。
ちなみにエラーの内容は、ホスト名をわざと間違えて実行しているので、
エラーログにももちろん
DBI connect(...) failed: could not translate host name "aaaaa" to address: Name or service not known
が出ます。
(エラーの内容はユーザ名間違いでもなんでもいいです)
参考にしているサイトやオライリーのPerlDBI本では、
undefを見てエラーチェックする例が書かれていたので…
0192191
2006/02/24(金) 18:25:23ID:???eval , $@ を使えば正しくエラー処理できてますが、
my $dbh = DBI::connect() or mySubRoutine();
のようなことがやりたい感じですが、エラー時でも or以降に行ってくれずdieされてる感じです。
0196nobodyさん
2006/02/24(金) 20:46:26ID:???0197nobodyさん
2006/02/24(金) 22:51:21ID:???環境やバージョンに依存した何かかね? PrintErrorを0にしないと、warningは
でるけど。あるいは書いてないけどどこかでRaiseErrorを有効にしてるとか?
% perl -e 'use DBI; $dbh = DBI->connect("dbi:Pg:host=aaa", "user", "pass",); print "死んでない\n"; print "dbh ", defined $dbh? "= $dbh": "is undef", "\n";'
DBI connect('host=aaa','user',...) failed: could not translate host name "aaa" to address: Name or service not known
at -e line 1
死んでない
dbh is undef
% perl -e 'use DBI; $dbh = DBI->connect("dbi:Pg:host=aaa", "user", "pass", {PrintError=>0}); print "死んでない\n"; print "dbh ", defined $dbh? "= $dbh": "is undef", "\n";'
死んでない
dbh is undef
0198nobodyさん
2006/02/24(金) 23:27:04ID:???0199189
2006/02/25(土) 21:19:30ID:???ご指摘ありがとうございます!
RaiseErrorが有効になっていたので、
無効にしてみたらちゃんとキャッチできました…
なにかものすごい勘違いをしていたようです。
RaiseErrorを無効にしないとdieされるから
キャッチできないってオチですね。
大変失礼しました。
0200nobodyさん
2006/03/31(金) 09:14:29ID:3Vb6MUysORA-01000が出るんですが、原因がわかりません。
常に出るわけではなく、なにをきっかけにしているのか
ずーっと悩んでいます。
Class::DBIを使った場合、カーソルが開く(もしくは閉じる)タイミングというのは
いつになるんでしょうか?
なにかヒントのようなものでもよいので
お願いします。
0201nobodyさん
2006/04/12(水) 16:46:12ID:Fg0UYczLperl command line iteratorが落ちてしまいます。
そしてMicrosoftへ連絡させられる・・・。
どのあたりに原因がありそうですか?
postgreにアクセスしないperlプログラムはちゃんと動くし、
pgAdminからならちゃんとpostgreSQLは機能します。
CPAN使ってDBIとDBD-Pgをインストールしました。
windowsでこの環境構築できた人居ますか?
0202201
2006/04/12(水) 17:35:44ID:Fg0UYczL○Interpreter
0203nobodyさん
2006/04/16(日) 14:21:00ID:???普通に
WindowsXP Pro + ActivePerl 5.6.1 + DBI 1.49 + DBD::Pg 1.21 + PostgreSQL 8.1.3
で動いてますが何か?
ちなみにDBD::Pgはppmで貰ってきたやつ。
0204nobodyさん
2006/04/16(日) 15:54:09ID:???Windows2000 + perl 5.8.7 built for cygwin + DBI 1.50 + DBD::Pg 1.43 + PostgreSQL 8.0.7
だな。
0205nobodyさん
2006/04/17(月) 00:27:48ID:???Perl versions below 5.6.1 are no longer supported by the DBI.
Perl versions 5.6.x may fail during installation with a complaint
about the use of =head3 in the pod documentation.
と言われてしまった。
そろそろ5.6は捨て時かな。
(他のモジュールでも「5.8以降じゃないからダメ」とインストールさせてもらえないのも結構増えてきた)
0206nobodyさん
2006/04/20(木) 16:26:10ID:???ある行をselect ... for updateで行ロックかけつつ更新したいんだけどDBICで
for updateしつつデータを取得する方法がわからなくて困ってます。
どうすりゃいいの?
0207206
2006/04/26(水) 09:50:57ID:???$rs->search_literal('id = ?) FOR UPDATE; --', $id);
search_literalは与えた文字列のまわりを括弧でくるんでくれるので、
FOR UPDATEの部分を外に出すために途中で括弧を閉じ、そのままだと
お尻の括弧が余るのでコメントにして無視させるというかなり強引な
トリックです。
0208nobodyさん
2006/04/27(木) 20:49:50ID:???データベースはSQLite。
よくある検索画面。1000件中の11〜20件目が2ページに表示されている。
というようなとき、limitやoffsetで取得行数を減らしてパフォーマンスを
あげることはよく行われていると思う。
だが検索にマッチした行が全部で何件かを知る必要がある。
limitをつけると、制限した行数しか返ってこないから
こういうときSQLを2回発行するしかないんかな?
order by してlimitしたりするとき、内部では何行あるか知っていると思うから、
SQL文にlimitつけてても制限されてない行数をしる方法がないかなぁと期待しているんだけど。
0209nobodyさん
2006/04/27(木) 21:28:39ID:???DBIだからこうというよりはSQL一般の話なのでデータベース板の
それっぽい質問スレでで聞いたほうが知ってる人に当たる確率が
高いと思われる。
0210nobodyさん
2006/04/27(木) 22:25:15ID:???0211nobodyさん
2006/04/28(金) 07:36:40ID:???DBの実装によると思う。
逆に言えば、DBごとに行数を返したり返さなかったりすると思うから、その共通I/FであるDBIでは取得できないと思う。
素直にselect count(*)しなされ。
0212nobodyさん
2006/04/28(金) 07:52:56ID:???ちょうど都合のいいインデックスがあれば
頭からlimit数分順に拾うだけでいいかもしれない
わけだし。
0213nobodyさん
2006/04/28(金) 15:07:40ID:???0214nobodyさん
2006/05/02(火) 20:43:42ID:Hk7IzHitDBIxでLimit 4,10みたいなのできないんかねー
0215nobodyさん
2006/05/03(水) 00:22:54ID:???pagerのことかな。直接limitしたいんだよというときにはかえってめんどくさいが。
あるいはsearch_literalで >>207 とおなじやりかたでlimitもつけられそう。
(試してはいない)
0216nobodyさん
2006/05/03(水) 05:32:14ID:???compat とかわけわからなす。
0217nobodyさん
2006/05/08(月) 20:54:21ID:???Perl + Postgresqlのアプリをmysqlに移植しようとしています。
Postgresqlでは複数ステートメントを連結したSQLをDBIで渡して実行できてたのですが、
mysqlでそのまま渡すとSyntax Errorとなってしまいます。
cseというクライアントソフト経由でも同様の症状がありましたが「一括実行」という
Pstgresqlでは使ったことのない操作で複数ステートメントを順に実行できました。
Perlで実行するためには何か特殊な設定などが必要でしょうか。
宜しくお願いします。
0219nobodyさん
2006/05/11(木) 17:46:04ID:???ブラウザに表示させることはできたんですが…
これ、普通のhtmlと一緒に出す場合はどうするのでしょうか?
0221nobodyさん
2006/05/11(木) 18:44:21ID:???mhtファイルを自前で生成するとか?(笑)
0222nobodyさん
2006/05/12(金) 02:10:33ID:???バイナリ出力するスクリプトの横に別のHTMLを作って、<img src="./hoge.cgi">
なんて書いてみよう。
0223nobodyさん
2006/05/16(火) 12:53:34ID:v8uyEVX5$dbh = DBI->connect( $dsn, $user, $password );
$sth = $dbh->prepare( 'SELECT * FROM companion LIMIT 0, 3' );
$sth->execute() ;
はOKだけど、
$i = 0;
$sth = $dbh->prepare( 'SELECT * FROM companion LIMIT ?, 3' );
$sth->execute( $i ) ;
とか、
$i = 0;
$sth = $dbh->prepare( 'SELECT * FROM companion LIMIT $i, 3' );
$sth->execute() ;
だと×。なして?
0224nobodyさん
2006/05/16(火) 13:54:23ID:???- Class::DBI::Sweet
- DBIx::Class::Schema
お好きなのをどうぞ。
0225nobodyさん
2006/05/16(火) 14:21:49ID:???> $sth = $dbh->prepare( 'SELECT * FROM companion LIMIT $i, 3' );
$sth = $dbh->prepare( "SELECT * FROM companion LIMIT $i, 3" );
じゃないか?「'」 だと$iが展開されないぞ。
0226nobodyさん
2006/05/16(火) 22:54:16ID:???そんな書き方してると、注入されますよ?
0227nobodyさん
2006/05/16(火) 23:51:19ID:???0228nobodyさん
2006/05/17(水) 03:02:32ID:???LIMIT '0',3
ってかエラー吐いてるの見ればわかるでしょ?
0229nobodyさん
2006/05/17(水) 08:51:13ID:???ギャグで言ってる?$iの汚染チェックするのは当然だろ。
オレは223の解釈が違ってるからレスしただけだ。
そもそも223の最後の例はプレースホルダ使ってないし。
0230228
2006/05/17(水) 10:09:25ID:???0231nobodyさん
2006/05/18(木) 00:52:43ID:???0232nobodyさん
2006/05/31(水) 18:35:21ID:QUWCbat7([\x81\x83\x84\x89-\x9F\xE0-\xEA][\x5C])で不具合がおこります。
十十十十 → 十十\十十\
十と一を足すと十一 → 十と一を足すと十\一
と2文字毎に\マーク(0X5C)が入ってしまいます。
これはDBI内部でのエスケープ時のバグでしょうか?
携帯電話用なのでなるべくSjisを使いたいという前提で、解決法がありましたら教えてください。
0233nobodyさん
2006/05/31(水) 19:02:06ID:???内部処理はUTF-8かEUCでやって出入り口のみでSJISと変換する。
これが一番楽だと思う。内部処理をSJISでやるのはお勧めしない。
どうしてもやりたければ同じような変な現象があとからあとから出て
来るので、それととことん付き合う覚悟でどぞー。
0234nobodyさん
2006/05/31(水) 19:21:37ID:QUWCbat7お返事ありがとうございます。
携帯電話ユーザーなので、当たり前に機種依存文字を使ってきます。
丸囲み数字や、絵文字など。
他文字コードに変換すると極めて都合が悪いのです。。
文字コード変換前にそれぞれ絵文字や機種依存文字をマッピングしてやればいいのかもしれませんが、
その労力も大変なものなので、どうしたものかと
0235nobodyさん
NGNGこういうの使うのも面倒なの?
http://search.cpan.org/~hio/Unicode-Japanese-0.34/Japanese.pm
0237nobodyさん
2006/06/01(木) 01:15:33ID:qUyEV8lXauに対応してないですね。
絵文字のマッピングは途中までやってるので続きやってみようかな。
それと、機種依存文字か。
他にsjisからutf8に変換するときに注意するような文字ってありますかね?
Sjisに戻すという事を前提に。
\マークが全角バックスラッシュになるのは確認してるんですが。
0238nobodyさん
2006/06/01(木) 01:27:47ID:???0239237
2006/06/02(金) 08:48:32ID:o6QECWedでIBM外字全部処理してくれるんですね。
こりゃ便利だ。。Encode使ってなかったよ(-o-;
0240nobodyさん
2006/06/02(金) 10:33:02ID:???> Encode 2.13以降ではfrom_toのfromの段階、すなわちdecodeの際にはcheckせずとにかくutf8化し、
> toの段階にあたるencodeの際にcheckを適用するという風にしたのですが、
> その結果、FB_(PERLQQ|HTMLCREF|XMLCREF)のFBが不要になったのです。
http://blog.livedoor.jp/dankogai/archives/50502791.html
http://kawa.at.webry.info/200605/article_11.html
0241nobodyさん
2006/06/12(月) 11:30:33ID:SMnZjb/vDIBを使用したいのですが、以下のエラーが出てしまいます。
【ソース】
1 #!/usr/perl5/bin/perl
2 ##
3 ##
4 require "/u01/app/oracle/OraHome_1/perl/lib/site_perl/5.6.1/i86pc-solaris/Bundle/DBI.pm";
5
6 @ary = DBI->available_drivers;
7 foreach (@ary){
8 print $_,"\n";
9 }
【エラー】
$ /usr/bin/perl test01.cgi
Can't locate object method "available_drivers" via package "DBI"
(perhaps you forgot to load "DBI"?) at test01.cgi line 6.
【環境】
Solaris9 + Oracle10g(10.1.0.3.0)
ご存知の方、ご指導よろしくお願いします。
0242nobodyさん
2006/06/12(月) 19:51:03ID:???つーかなんでuseじゃなくてrequireで読んでるのよ。
(ちゃんとPerlのモジュール用のディレクトリにDBIインストールしろって)
#!/usr/perl5/bin/perl
use DBI;
foreach (DBI->available_drivers('TRUE')){
print "$_\n";
}
0243241
2006/06/13(火) 01:15:22ID:5fyA1E2sレスありがとうございます。
>つーかなんでuseじゃなくてrequireで読んでるのよ。
Oracle10gのインストール時にインストールされた DBI.pm を使いたかったからです。
(以下の3箇所に DBI.pm が存在していました。)
A. /u01/app/oracle/OraHome_1/perl/lib/site_perl/5.6.1/Apache/DBI.pm
B. /u01/app/oracle/OraHome_1/perl/lib/site_perl/5.6.1/i86pc-solaris/Bundle/DBI.pm
C. /u01/app/oracle/OraHome_1/perl/lib/site_perl/5.6.1/i86pc-solaris/DBI.pm
>ちゃんとPerlのモジュール用のディレクトリにDBIインストールしろって
インストールというのは、どういうものなんでしょうか?
★インストール方法1
@INCに定義されているディレクトリの1つに、上記 B のディレクトリの内容を
全部コピーして実行。結果は、
Can't locate object method "available_drivers" via package "DBI"
(perhaps you forgot to load "DBI"?) at test01.cgi line 5.
でした。
※@INCにパスを追加する方法は、わかっておりません。
0244241
2006/06/13(火) 01:16:03ID:5fyA1E2s★インストール方法2
CPAN
http://search.cpan.org/~timb/DBI-1.51/DBI.pm
から DBI-1.51.tar.gz をダウンロード。
gnuの make と gcc をダウンロード&インストール。
http://www.sunfreeware.com/から libiconv-1.8 をダウンロード&インストール。
makeで失敗。
make: *** [blib/arch/auto/DBI/DBI.so] Error 1
行き詰まりです。
「DBIインストール」は、こんなに複雑なものなのでしょうか?
やはり、Solaris9(Intel-32bit) + Oracle10g(10.1.0.3.0)の環境が災いしているとか・・・
0246nobodyさん
2006/06/13(火) 08:05:43ID:???せいです。use は自動で import しますが、require はしません。
@INC を直接いじるのは最後の手段なので、lib pragma を使い、次の行を
を use DBI の前のどこかに入れてください。
use lib '/u01/app/oracle/OraHome_1/perl/lib/site_perl/5.6.1/i86pc-solaris/';
perl は、付属ドキュメントが充実しています。2ch などで質問する前に
perldoc を使うようにしてください。
0247241
2006/06/13(火) 13:38:38ID:5fyA1E2s有難う御座います。
実行してみました。
上手くいっていません。
まだ、設定がいるのでしょうか?
【ソース】
#!/usr/perl5/bin/perl
use lib '/u01/app/oracle/OraHome_1/perl/lib/site_perl/5.6.1/i86pc-solaris/';
use DBI;
#foreach (DBI->available_drivers('TRUE')){
#print "$_\n";
#}
【結果】
$ perl test01.cgi
ld.so.1: perl: 重大なエラー: 再配置エラー: ファイル
/u01/app/oracle/OraHome_1/perl/lib/site_perl/5.6.1/i86pc-solaris//auto/DBI/DBI.so:
シンボル perl_get_sv: 参照シンボルが見つかりません。
強制終了
>perl は、付属ドキュメントが充実しています。2ch などで質問する前に
>perldoc を使うようにしてください。
了解しました。手引き有難う御座います。
0248nobodyさん
2006/06/13(火) 23:19:05ID:???> 重大なエラー: 再配置エラー: ファイル
そのDBIじゃなくて素直に
http://search.cpan.org/~timb/DBI-1.51/
のDBI使おうよ。
恐らく
/u01/app/oracle/OraHome_1/以下略
にある方はインストールまたはコンパイルに失敗しているんじゃない?
それと同名のモジュールで
http://search.cpan.org/~timb/
とは別物という可能性もあるでしょ。
インストール方法はREADME読め。
つーか読まなくとも
perl Makefile.PL
make
make test
make install
とする手順はほぼ全てのモジュールで変わらないっての。
ちなみにPerl 5.6.xだと警告(「5.6系列なんてもうサポートしてねーよ」)と出るからできればPerl 5.8.xにすることが望まれる。
5.6のまま使い続けたいのなら、警告無視してそのままインストールを強行するか、古いバージョンのDBIを落としてインストールすればいい。
> 了解しました。手引き有難う御座います。
了解したのに質問してるしw
0250241
2006/06/14(水) 10:29:26ID:EZ+xyelBREADME読みました。
【http://search.cpan.org/~timb/DBI-1.39/の結果】
※perlのバージョンは v5.6.1 built for i86pc-solaris-64int
$ make
/bin/sh -c true
/bin/sh -c true
/bin/sh -c true
cc -c -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -xO3 -xdepend -DVERSION=\"1.39\" -DXS_VERSION=\"
1.39\" -KPIC -I/usr/perl5/5.6.1/lib/i86pc-solaris-64int/CORE -DDBI_NO_THREADS Perl.c
cc: unrecognized option `-KPIC'
cc: language depend not recognized
cc: Perl.c: linker input file unused because linking not done
/usr/bin/perl -I/usr/perl5/5.6.1/lib/i86pc-solaris-64int -I/usr/perl5/5.6.1/lib /usr/perl5/5.6.1/lib
/ExtUtils/xsubpp -typemap /usr/perl5/5.6.1/lib/ExtUtils/typemap -typemap typemap DBI.xs > DBI.xsc &
& mv DBI.xsc DBI.c
cc -c -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -xO3 -xdepend -DVERSION=\"1.39\" -DXS_VERSION=\"
1.39\" -KPIC -I/usr/perl5/5.6.1/lib/i86pc-solaris-64int/CORE -DDBI_NO_THREADS DBI.c
cc: unrecognized option `-KPIC'
cc: language depend not recognized
cc: DBI.c: linker input file unused because linking not done
rm -f blib/arch/auto/DBI/DBI.so
LD_RUN_PATH="" cc -G DBI.o -o blib/arch/auto/DBI/DBI.so
cc: DBI.o: No such file or directory
cc: no input files
make: *** [blib/arch/auto/DBI/DBI.so] Error 1
$
0251241
2006/06/14(水) 10:34:10ID:EZ+xyelBReading specs from /usr/local/lib/gcc/i386-pc-solaris2.9/3.4.2/specs
Configured with: ../configure --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld --disable-nls
Thread model: posix
gcc version 3.4.2
DBI-1.39 27 Nov 2003
perl敷居高い。
(゚∀゚)アヒャ!
0252nobodyさん
2006/06/14(水) 11:02:47ID:???ちと荷が重いんじゃないかな... 仕事ならご愁傷様。
0253241
2006/06/15(木) 00:52:23ID:yyTHjJyaSolaris + Intel + 32bitの場合のOracleの選択肢は、Solaris9 + Oracle10gの
組み合わせしかないし、Solaris10のZFSを使いたいと思っているので、
素直にphp + MySQLを使う方がストレートのような気がしてきました。
0254nobodyさん
2006/06/15(木) 12:00:42ID:???0255nobodyさん
2006/06/15(木) 12:54:23ID:???で、出来た時間でじっくりお勉強。
0256nobodyさん
2006/06/15(木) 17:16:06ID:???ただ、エラーメッセージちゃんと読まずに問題を切り分けられないからって、
DBI に文句言うのはメ。
ヒント: gcc の -fPIC に当るのが SUN謹製 cc の -KPIC。Perl は寂しがり屋
だから自分とおそろいのコンパイラが好き。
0258241
2006/06/17(土) 12:52:26ID:1OdBlA+4申し訳ないのですが php + MySQL で問題無く構築できました。
0259nobodyさん
2006/06/17(土) 13:25:04ID:???0260nobodyさん
2006/06/17(土) 19:28:34ID:???0261nobodyさん
2006/07/15(土) 01:20:13ID:???ば・・・ばかな!
DBD-Pgをインスコできねぇ・・・ググっても該当するものがでてこねぇ マジやべぇか(ry
DBD-Pg-1.49のmakeで下記の警告が出ます。
ご教授おねがいします。
-----------------------------
dbdimp.c: In function 'dbd_bind_ph':
dbdimp.c:1656: 警告: value computed is not used
quote.c: In function 'quote_string':
quote.c:44: 警告: value computed is not used
quote.c: In function 'quote_geom':
quote.c:79: 警告: value computed is not used
quote.c: In function 'quote_path':
quote.c:108: 警告: value computed is not used
quote.c: In function 'quote_circle':
quote.c:137: 警告: value computed is not used
quote.c: In function 'quote_bytea':
quote.c:174: 警告: value computed is not used
quote.c: In function 'dequote_bytea':
quote.c:329: 警告: value computed is not used
----------------------------------------
PostgoreSQL 8.1.4をインスコして起動済みです。
DBI-1.51をインスコ
↓工程
su - postgres
export POSTGRES_INCLUDE=/usr/local/pgsql/include
export POSTGRES_LIB=/usr/local/pgsql/lib
perl Makefile.PL
make
0262nobodyさん
2006/07/15(土) 20:03:51ID:???警告だけなら問題はないはずだが。
0263nobodyさん
2006/07/16(日) 03:41:39ID:???レスアザース
一通りmake installをして下記トレース(****はふせたいヶ所)を実行してみました。
----------------------------------------------
#!/usr/bin/perl
use DBI;
use constant DBNAME => 'DBI:Pg:dbname=****';
use constant DBUSER => 'postgres';
use constant DBPASS => '****';
DBI->trace( 2, '/home/postgres/public_html/dbi_trace.log');
DBI->connect( DBNAME, DBUSER, DBPASS, { AutoCommit => 0 });
print "Content-Type: text/plain\n\n";
print $DBI::errstr? $_: 'Done';
----------------------------------------------
結果(dbi_trace.log)
--------------------------------------------------
DBI 1.51-ithread default trace level set to 0x0/2 (pid 5346)
-> DBI->connect(DBI:Pg:dbname=tottoDB, postgres, ****, HASH(0x8eabc28))
-> DBI->install_driver(Pg) for linux perl=5.008008 pid=5346 ruid=0 euid=0
-- DBI::END
--------------------------------------------------
DBD::PgのVersionなど詳細をはきだす前にENDされています。
0264263
2006/07/16(日) 03:45:23ID:???オレっておちゃめw
0265263
2006/07/16(日) 17:19:42ID:???再インスコしたらDBD::Pgが動作しました。
/usr/local/pgsql/lib/libpq.so.4 のシンボリックリンクを
/usr/lib/libpq.so.4 に作った事が吉とでたようです。
ちなみに>262の言う通り警告は問題なかったようです。
0266nobodyさん
2006/07/28(金) 18:07:16ID:qH9kRSG5perlでメールアカウントを作成するにはどうしたらよいでしょうか?
やりたい事は、セカンドメールサービスのようなもので、
登録したユーザー同士でセカンドメールを与えるという物です。
user_a@hotmail.comにid_a@mydomain.com
user_b@hogehoge.comにid_b@mydomain.comを与え、
user_a@hotmail.comからid_b@mydomain.comに送られたメールを
id_a@mydomain.comからuser_b@hogehoge.comに転送するような感じです。
現在はSubjectに送りたい方のidを入力してもらって、recept@mydomain.comを窓口にして転送してます。
もっと簡易なシステムを作りたくご相談します。
こういう場合、メールアカウントを作る必要もないのでしょうか?
0267nobodyさん
2006/07/28(金) 20:17:11ID:???それDBIの問題じゃないだろ。
0268nobodyさん
2006/08/28(月) 17:49:49ID:???CatalystでWebアプリを作っていて、思いっきりモデルで躓いている
CREATE TABLE TblDiary(
parano int4
order_no int4
belong_dno int4
have_illustno int4
PRIMARY KEY(parano));
CREATE TABLE TblIllust(
illustno int4
illust_name text,
PRIMARY KEY(illustno));
上記の「TblDiary」と「TblIllust」という2つのテーブルがあって、
TblDiary.have_illustnoとTblIllust.illustnoをJOINTさせたい
このとき
my $table = $c->model('DBIC::TblDiary');
$table->has_one('illust_bind' => 'Test::Model::DBIC::TblIllust', 'illustno');
my $records = $table->search(
{belong_dno => $dno},
{order_by => 'order_no'},
{prefetch => ['illust_bind']}
);
と書いているんだが、これだとTblDiary.paranoとTblIllust.illustnoがJOINTしてしまうんだ・・・
(一応、それ以外のところは思っているとおりにデータが取れている)
これを、本来望んでいるTblDiary.have_illustnoとTblIllust.illustnoの
JOINTにするにはどうすれば良いのか、誰か教授して貰えないだろうか
0269nobodyさん
2006/08/28(月) 17:53:16ID:???見辛い文体で申し訳ないorz
0270nobodyさん
2006/08/28(月) 20:45:48ID:???こちらもスマンかった
とりあえず、DBICについてはスレ違いかもしれないので
初心者板でも行ってきます
【初心者】 λ......
0271nobodyさん
2006/08/28(月) 22:10:57ID:???ぐぐればいくらでもでてくるのに。
0272nobodyさん
2006/08/28(月) 23:09:48ID:???レスありがとうございます。
えっと、申し訳ないですが、そこはすでに拝見させて貰いました・・・
(かなり詳しく書かれており、非常に重宝させて頂いています)
リレーションですが、モデルのファイルに設定を書き込まずに
Catalystのコントローラーにて書きたい点と、
TblDiaryが主キーのカラムじゃない点で頭を悩ませています
説明不足で申し訳ありませんでした。
かなりググったのですが、探し方が足りないのか
未だにネットでは見つからずにいますorz
実際にCatalystを使っておられて、CDBIを使用されている方は
おられるでしょうか?
0273268
2006/08/28(月) 23:18:44ID:???説明がヘタで申し訳ないです・・・
主キーではないTblDiary.have_illustnoと連結させたいので、
このhave_illustnoというカラムを何らかの方法で
illustnoというカラムとリレーション指定を行いたいです
(このままでは、主キーのカラムであるTblDiary.paranoと連結してしまいますので)
希望するhave_illustnoへと連結できるよう、どのようにコントローラーに
指示を送れば良いのかが分からないです。
0275nobodyさん
2006/08/29(火) 00:25:18ID:???コントローラでやる理由は?
0276nobodyさん
2006/08/29(火) 01:34:48ID:???レスありがとうございます。
コントローラに記述する理由ですが、今後テーブルの個数が大きく増減する可能性があり、
モデルを全削除して、再度CatalystのヘルパースクリプトでDBの構造から
モデルファイルを自動作成するかもしれないからです。
ヘルパースクリプトを使わず、変更の度に対応するCatalystのモデルファイルを
手動で追加・削除したりしても良いのですが、どうしてもミスがありますので・・・
こちらは希望ですので、モデルに書くしか実現できないようでしたら諦めたいと思います。
ただ、モデルに書いた場合でも片方のテーブルが主キー以外のカラムと連結できず、
ハマり状態から抜けられずにいます。
モデルにリレーションを書く方法も平行して試行錯誤してみます。
こうじゃなくて
my $records = $table->search(
{belong_dno => $dno},
{order_by => 'order_no'},
{prefetch => ['illust_bind']}
);
こうじゃないのかな
my $records = $table->search(
{
belong_dno => $dno
},
{
order_by => 'order_no',
prefetch => [ 'illust_bind' ]
}
);
2chは半角スペースが詰められちゃうから
書き込むときは全角でインデントするといいよ
0279nobodyさん
2006/08/29(火) 09:36:54ID:???package MySchemaClass;
use base qw/DBIx::Class/;
# 自動生成
package MyController;
use MySchemaClass;
MySchemaClass->belongs_to(...);
0280nobodyさん
2006/08/29(火) 15:58:11ID:???レスを頂きましてありがとうございます。
>>277
ご教授ありがとうございました。
prefetchはorder_byと同じ第2引数に記述するのですね。
今まで第3引数として書いても動作していたのは、
DBICの方で良きに計らってくれたのかもしれません・・・
ただちに直させて頂きました。
インデントの件も御指摘ありがとうございます。
以後気をつけて書き込みさせて頂きます。
0281nobodyさん
2006/08/29(火) 15:59:24ID:???なるほど、DBIC::Schemaを使用すれば、問題とならないのですね。
Catalystを使う上でもDBIC::Schemaが推奨させているようですので、
私もこちらを非常に使いたいのですが、未熟なため、
DBIC::Schemaを使用してCatalystのヘルパースクリプトを立ち上げられずにいます。
こちらのサイトを参考にして試してみたのですが
http://en.yummy.stripper.jp/?eid=362958
>script\lc_create.pl model DBIC DBIC::Schema Lc::Schema create=static DBI:Pg:mydb user pass
とプロンプトからヘルパースクリプトを起動させると
>Can't locate object method "use" via package "DBIx::Class::Schema::Loader" (perhaps you forgot to load "D
BIx::Class::Schema::Loader"?)
『もしかしてDBIx::Class::Schema::Loaderをロードし忘れているんじゃないか?』と指摘されてしまいました。
該当場所まで言って、useでロードして見るものの、
>Can't locate object method "use" via package "DBIx::Class::Schema::Loader"
うしろの( )指摘がなくなっただけでして、現在はこちらで立ち止まっている状態です。
推奨されるDBIC::Schemaには切り替えたいですので、今から引き続き挑戦して参ります。
(何か大ポカをやらかしていそうな気がします・・・)
0282nobodyさん
2006/08/29(火) 16:02:25ID:???非常につまらないことが原因で本当に申し訳ないのですが・・・orz
>>268の件、ようやく望む通りの動きをするコーティングができました。
my $table = $c->model('DBIC::TblDiary');
$table->belongs_to(illust_bind => 'Test::Model::DBIC::TblIllust', 'have_illustno');
my $records = $table->search(
{
belong_dno => $dno
},
{
order_by => 'order_no',
prefetch => ['illust_bind']
}
);
「belongs_to」にて最後に繋げたい、主キーではないカラム名を指示するだけだったようです。
お見苦しい質問をいたしまして、本当に申し訳ございませんでした。
レスを頂いた皆様に、心より御礼申し上げます。
0283nobodyさん
2006/08/29(火) 19:52:13ID:???0284nobodyさん
2006/08/29(火) 20:56:33ID:???クダらん煽りいれるな
0287nobodyさん
2006/10/31(火) 14:14:04ID:WVctgpP6以下やってみたけど、エラーとなりまうす
my $result = $c->form;
my $userdata = $c->model('HOGE')->find(uid => $uid);
$userdata->update($result);
あほなのでフォームの値をいちいちハッシュに入れてからじゃないとうまくできないです。
良い方法あったらおしえてください。
0289nobodyさん
2006/10/31(火) 14:39:43ID:???$userdata->update($result);
これ$resultは$c->formなんですが、これだとエラーになるんですよ。
DBIx::Class::InflateColumn::update(): No such column _records
いちいち $c->req->param('hoge1')をハッシュに入れて、update(\%hoges)とすればうまくいくんですけど
いちいちハッシュにいれなくても良い方法ないですかね。
0290nobodyさん
2006/10/31(火) 14:55:03ID:???$c->formはCatalyst::RequestオブジェクトだからいきなりDBICのupdateに
わたしてもそりゃだめだろう。渡すとすれば$c->form->paramsじゃないか?
チェックはちゃんとしてあるのが前提だけどな。
0291nobodyさん
2006/10/31(火) 16:08:20ID:???http://search.cpan.org/~jrobinson/DBIx-Class-WebForm-0.02/lib/DBIx/Class/WebForm.pm
これためしてみましたが、CatalystのDBICに
__PACKAGE__=>config(additional_base_classes => 'DBIx::Class::WebForm');
入れてみたけど
$userdata->update_from_form($result);
で Can't locate object method "update_from_form" とでてしまう...
0292nobodyさん
2006/10/31(火) 16:16:50ID:???$c->form->paramsが返すハッシュリファレンスの中身は期待しているもの
だったのか確認したのか?
update_from_formはクラスメソッド。使い方がマニュアルと違うじゃん。
0293nobodyさん
2006/11/07(火) 13:24:16ID:oWVVtuaPファイルの中身は変数に一度突っ込んでから
$sth->execut($text);
する方法しかないのでしょうか?
メモリの使用量が心配なんですが、他に良い方法はありませんか?
0294nobodyさん
2006/11/07(火) 14:26:05ID:???どうやって利用するんだ?
取り出すときもメモリの心配するのか?
0296nobodyさん
2007/01/21(日) 06:10:16ID:r5E3Q3qv$res = $st->execute;
while(@res = $st->fetchrow) {
print <<ROW;
<tr>
<td> $res[0] </td>
<td> $res[1] </td>
</tr>
ROW
}
print "$res[2]$res[3]\n";
0297296
2007/01/21(日) 06:11:07ID:r5E3Q3qv作っている状態です。超初心者ですが、よろしくお願いします。
上記のように、$st = $db->prepare()の中に複数のMySQL文を入れることは
可能でしょうか?
また、違う点でもご指摘があればよろしくお願いします。
0298nobodyさん
2007/01/22(月) 03:48:16ID:???0299nobodyさん
2007/02/01(木) 08:18:29ID:???fetchrowにラッパーかます以外、簡単な解決策はないでしょうか。
0300nobodyさん
2007/04/12(木) 00:28:59ID:???Perlのバージョン
DBIのバージョン
DBD::MySQL(PG,Oracle)のバージョン
MySQL(PostgreSQL,Oracle)データベースのバージョン
使える組み合わせの一覧表ってどこかにありませんか?
0302nobodyさん
2007/05/06(日) 12:20:49ID:???use DBI;
$DBName="TestDB.db";
$hDB = DBI->connect(
"dbi:SQLite:dbname=$DBName","","",{PrintError=>0}
);
if(!$hDB){
print "$DBI::errstr ¥n";
exit;
}
$sql =".table;";
$hst = $hDB->do($sql);
if(!$hst){
print $hDB->errstr . "¥n";
exit;
}
print $hst;
$hDB->disconnect;
×MySQL ○SQLite
0305nobodyさん
2007/10/28(日) 22:08:49ID:???テーブル見るだけならsqlite_masterというマスターテーブル?に入ってるから
$dbh->prepare('SELECT * FROM sqlite_master")
とかあとはスクリプトの中からsqliteを直接実行するしかないんじゃないかな
即答ありがとうございます。sqlite_masterとても参考になりました。
0307nobodyさん
2007/10/29(月) 16:37:20ID:???トランザクションでエラーでまくりなんだけど・・・
DBD::SQLite 1.3
0308nobodyさん
2007/10/29(月) 19:34:44ID:???0309nobodyさん
2008/04/27(日) 18:20:14ID:GdnUUJeu調べたりすることが多くて、エラーが出てばっかりとかで、時間は浪費するし、
疲れる。困難の連続なんだが。
DBの接続を実現させるだけでも大変。
でも他人は俺とは違い、難なくクリアしてるんか。頭が良くて、要領もいいのか。
どうやって解決してるんだ。
0310nobodyさん
2008/04/27(日) 21:25:12ID:???データの永続化としては、CSVもどきやCSV, YAML, Storable, DBMとかあるとおもうけど
DBIでRDBMSが一番手堅くね?
0311nobodyさん
2008/04/27(日) 21:25:54ID:???0312nobodyさん
2009/01/12(月) 15:15:30ID:DVs9WJdR覚えて慣れるまで大変だわ。
0313myYyWxRRQ
2009/10/23(金) 02:50:19ID:???0314nobodyさん
2009/10/23(金) 03:08:54ID:Ax+yFrZW覚えるの大変な割りに使い勝手わりーよ
ちょっと気の利いたことすると、すぐに括弧だらけになっちまう
気を利かせなけりゃDBIx::Simpleで充分だし
0315nobodyさん
2010/04/03(土) 19:03:20ID:E/aWmIoC箇所があります。
うろ覚えではあるのですが、DBIで実装されている機能側でキャッシュして
これを一括で実行する方法があったような気がするのですが、ぐぐっても
出てこなかったので、幻ですかね。。
0317nobodyさん
2010/10/09(土) 14:26:31ID:???0319Perl忍者 ◆M5ZWRnXOj6
2010/10/14(木) 21:16:17ID:FhDSY4IL0320nobodyさん
2010/11/18(木) 14:10:29ID:Cpwx90i/mdb上のメモ型フィールドのデータをPerl上で "SELECT memo FROM sampletable" として抽出しようとすると
DBD::ODBC::st fetch failed: [Microsoft][ODBC Microsoft Access Driver]文字列データの右側が切り捨てられました。 列番号 1 (Title) (SQL-01004) at C:\yyy\xxx\www\test.pl line 28.
というエラーが出て、配列にデータが格納されません。
メモ型のみで、テキスト型フィールドのデータはきちんと抽出され、配列に格納されます。
調べてみたところ、メモ型フィールドはSELECTで抽出できないという文章を目にしたのですが
もしそうなのであれば、255Byte以上の文字列はどのようにDBへ出し入れすればよいのでしょうか?
ちなみに、Access上のSQLクエリでSELECTにて抽出した場合には、メモ型フィールドもきちんと抽出されてきます。
同じ命令をOCDB経由で投げると上記エラーが出てきます。
どなたが、救いの手を・・・
0321320
2010/11/19(金) 16:01:37ID:???それを超えるとエラーしてしまう。
テキスト型でも、フィールドサイズが255文字までなので、それ以下しか扱えないということになってしまいます。
相変わらず、メモ型の動作が想定外な為、自己解決ならず。
0322nobodyさん
2011/01/03(月) 19:39:28ID:???$stl = $dbh->prepare("CREATE TABLE ? ( ? char(2) )");
$stl->execute($table_name, $key_name);
文法エラー:
CREATE TABLE 'my_table' ( 'my_key' char(2) )
ほんとうは
CREATE TABLE my_table ( my_key char(2) )
じゃなきゃだめ
■ このスレッドは過去ログ倉庫に格納されています