トップページ⇒php
981コメント318KB

【PHP】PEAR Part2

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/08/01(月) 21:27:12ID:pG+mahP3
落ちてたんで立てとく

■PEAR
http://pear.php.net/

■前スレ
Pear
http://pc8.2ch.net/test/read.cgi/php/985665522/
0437nobodyさん2006/06/05(月) 14:06:54ID:???
セキュリティソフトとか?
0438nobodyさん2006/06/05(月) 16:15:22ID:???
普通にファイヤーウォール機能が有効になってるんだろう。SP2だし。
許可しないと接続できないよ。

やりかたはウィンドウズ板で訊くか、メーカに訊くか、マイクロソフトにでも訊いてくれ。
04394352006/06/05(月) 20:29:10ID:???
SP2のファイアウォール忘れていました…

ひとまず go-pear.php というのがあったのでそちらを試したところ
インストールできました。
0440nobodyさん2006/06/06(火) 07:42:26ID:???
go-pear.batの中身みた?
0441nobodyさん2006/06/06(火) 17:56:12ID:???
Net_CDDBってご存じないですか?

CDDBを利用出来るPEAR用のライブラリがあるとのことで
ダウンロードして利用を試みているのですが、全く参考文献がないし
そもそもどのように使うライブラリかわかりません。。

ご存じの方は、どうやってCDDBにアクセスして出力するか
教えていただけないでしょうか?
0442nobodyさん2006/06/06(火) 20:09:51ID:???
>>441
Net_CDDBはalpha版なんだよ。
alpha版ってのは開発途中で脆弱性なんかもはらんでいるし、
ある程度わかってる人間が試用してバグなんかをフィードバックするもんなんだよ。

>ダウンロードして利用を試みているのですが、全く参考文献がないし
>そもそもどのように使うライブラリかわかりません。。
というような段階なら今はやめておいた方がいい。

それでも使いたいなら
http://pear.php.net/package/Net_CDDB/docs/latest/
を読んで頑張れ。
0443nobodyさん2006/06/06(火) 20:10:22ID:???
そもそもCDDBってあんまり信用性ないけど大丈夫な用途なの?
0444nobodyさん2006/06/06(火) 20:58:04ID:???
見た感じCDのdiscid?からデータを取得してるみたいだけど。
アーティスト名やアルバム名とかからも検索出来ないとあんまり使い道ないんじゃないの?
0445nobodyさん2006/06/06(火) 21:39:57ID:???
CDDBの有用性や用途自体はここで議論する内容じゃないな
0446nobodyさん2006/06/07(水) 00:13:00ID:???
あきらかに思いつきでCDDBに飛びつこうとしてる様には見える。
地道に手でデータ入力しないと使い物に成らないことは多い。
0447nobodyさん2006/06/07(水) 01:37:05ID:y49n2VPp
>>430
adodb-extのこと
エンジン部分がcで書かれてる
0448nobodyさん2006/06/07(水) 09:50:37ID:???
>>447
>>430ではないが、その拡張を使ったらどの位早くなるか知ってる香具師いる?
0449nobodyさん2006/06/07(水) 12:02:25ID:L3b4rYZL
すみません。ちょっと、教えて下さい。PEARでMDB_QueryToolを使っている
のですが、あるSQL文を書くことが出来ないので、どなたか教えて頂きたい
のです。Tcustomerテーブルから、pointフィールドが「3か4か5」のものを
抽出しようとして、下記の文をPHP5で書きました。

$Tcustomer = DB_Factory::create( 'Tcustomer' );
$Tcustomer->addWhere(' point in ( ? ) ','3,4,5');

そうすると、pointフィールドが「3」のものだけが抽出され、「4」と
「5」のものは抽出されないのです。普通にSQL文で書けば、
select * from Tcustomer where point in (3,4,5);
とすれば良いのですが、どうしてもここはPEARのMDB_QueryToolで書かな
ければならない状況なのです。どなたかPEARのMDB_QueryToolでの書き方
を教えて頂きたく存じます。宜しくお願いします。
0450nobodyさん2006/06/07(水) 13:25:11ID:???
DB_Factoryって自作のクラス?
そこはよくわからんのだけど、単にMDB_QueryToolのインスタンスを返してくれるとして、
MDB_QueryToolのaddWhereは
function addWhere($where , $condition='AND')
{
if ($this->getWhere()) {
$where = $this->getWhere().' '.$condition.' '.$where;
}
$this->setWhere($where);
}
となってるから、
$Tcustomer->addWhere(' point in ( 3,4,5 )');
と書けば上手くいくと思う。

どうかな?
0451nobodyさん2006/06/07(水) 21:13:32ID:Ho01fxGO
>>450様

>>449です。出来ました!!ありがとうございます。
0452nobodyさん2006/06/09(金) 20:53:34ID:???
少し質問させてください。

現在ファイルのアップロードが行える掲示板系のシステムをPHPで作成しています。
プログラム自体はそんなに苦労していないんですが、ひとつ付け加えたいものがあって悩んでいます。

大容量のファイルをアップロードする際、アップロードが終わらないと別の処理ができません。
そこで、「現在アップロードをしている」ことをわかりやすくするために、HTML_Progressを使ったポップアップウインドウで実現しています。
しかし、サンプルサイトをみても「総容量に対し、どれだけアップロードできたか」の進捗状況を表示するのではなく、
アップロードが終わるまでアニメーションを行い、アップロードができたらストップさせる形でした。
これを、「総容量に対し、どれだけアップロードできたか」の進捗状況を表示するようには、どうすればいいのでしょうか。

また、アップロードを行うフォームはHTML_QuickFormを使っているのですが、
アップロード中にブラウザを中止させたり、閉じたりした場合、進捗バーが止まらず、見かけ上常にアップロードしているように見えます。
できることなら、アップロード中にブラウザ側でなんらかのエラーが起きてアップロードができなくなったとき、
進捗バーを止め、エラーを表示したいのです。

アップロードに使っている関数はHTML_QuickForm_File::moveUploadedFileです。
この関数ではアップロードが「できた」か「できなかった」かの状態が取れるはずなのですが、
ブラウザからの中断には対応していないのでしょうか。

長くなりましたが、お答え願えれば幸いです。
最後に、もうひとつ質問なのですが、同システムをPerlでやろうとした場合、
PHPで行うより簡単になりますか?
0453nobodyさん2006/06/09(金) 21:06:47ID:???
>>452
すれ違い
0454nobodyさん2006/06/09(金) 22:35:31ID:???
>>452
http://uber-uploader.sourceforge.net/
0455nobodyさん2006/06/09(金) 22:38:54ID:???
>>452
ぐぐれば腐る程サンプルでてくるよ
0456nobodyさん2006/06/11(日) 15:11:27ID:???
>>453
すみませんでした。
0457nobodyさん2006/06/12(月) 02:35:54ID:???
HTML_Quick_Form_Controllerが何もうれしくない件について
http://pear.php.net/manual/ja/package.html.html-quickform-controller.intro.php

これ理解するくらいなら、自分でコントローラ作った方がマシじゃない?
使ってるやついたらHQFCのいいとこを教えてくれ。
0458nobodyさん2006/06/13(火) 00:45:56ID:???
世の中には自分で作れない馬鹿も存在するし(w
0459nobodyさん2006/06/13(火) 00:49:11ID:???
コントローラを自分では作れないけど
この小難しい HQFC を理解して使える……ってのも
馬鹿の程度がかなーり微妙だよな
0460nobodyさん2006/06/13(火) 02:26:47ID:???
>>459
同感。
小難しい HQFC を理解して使える馬鹿の登場を待とうか。
なんて、あおってみたりするテスト
0461nobodyさん2006/06/13(火) 09:36:39ID:???
PEARってなんて読むの
0462nobodyさん2006/06/13(火) 09:48:21ID:???
ドンブリ
0463nobodyさん2006/06/13(火) 12:09:51ID:???
>>462
嘘教えちゃだめでしょ

>>461
クスコ
0464nobodyさん2006/06/13(火) 12:36:45ID:???
>>461
サルスベリ
0465nobodyさん2006/06/13(火) 13:15:57ID:???
Perl使いはPEARと書いてうんことよみます
PHP使いはPEARと書いてピアーとよみます
0466nobodyさん2006/06/13(火) 15:37:05ID:???
ピアーだとpeerだけどね。和製英語じゃ恥ずかしいよ。
0467nobodyさん2006/06/13(火) 16:31:37ID:???
洋ナシのことだから
ペアーでいいんじゃない

0468nobodyさん2006/06/13(火) 16:33:31ID:???
どんなオチが来るのかと思ったら、普通に言っちゃったね・・・
0469nobodyさん2006/06/13(火) 17:48:06ID:???
用無し
0470nobodyさん2006/06/13(火) 19:04:20ID:???
誰がうまいことを言えと
0471nobodyさん2006/06/14(水) 11:24:21ID:???
ペアはpairだが。ここの住人は英語が使えないな。
0472nobodyさん2006/06/14(水) 12:05:34ID:???
きのうの昼下がり、対向車とすれ違うのが難しい狭い道路でのできごと。
対向車と鉢合わせ(↓な感じ)

_______/ ̄\____
●→                ←●俺
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

_______/ ̄\____
       ●→     ←●俺
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

_______/ ̄\____
          ●   ●俺
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

_______/ ̄\____
          ●   ●俺
       |    ( _●_)  ミ

_______/ ̄\____
       /  ●   ● | 
       |    ( _●_)  ミ

   ∩___∩
   | ノ      ヽ
  /  ●   ● | ベア──!!
  |    ( _●_)  ミ
 彡、   |∪|  、`\
/ __  ヽノ /´>  )
0473nobodyさん2006/06/14(水) 16:59:31ID:???
アイアムヒアー
0474nobodyさん2006/06/14(水) 19:17:59ID:???
>>471
片仮名だとそれ以外言い方なかろう
0475nobodyさん2006/06/15(木) 10:33:44ID:???
くるくるパー
0476nobodyさん2006/06/15(木) 13:37:41ID:???
んで結局ピアー、ペアーどっちなの?
0477nobodyさん2006/06/15(木) 15:02:27ID:???
>>476

ttp://pear.php.net/manual/ja/introduction.php
> 果物の梨と同じように(「ペア」と)発音します。

梨↓
ttp://dictionary.goo.ne.jp/search.php?MT=pear&kind=ej&mode=0&base=1&row=0
0478nobodyさん2006/06/15(木) 15:05:14ID:???
漏れは ペア 派
0479nobodyさん2006/06/15(木) 15:49:12ID:???
激しくDDI
0480nobodyさん2006/06/15(木) 18:03:54ID:???
漏れは今poorだ。金くれ。
0481nobodyさん2006/06/15(木) 18:16:56ID:???
480 nobodyさん sage 2006/06/15(木) 18:03:54 ID:???
漏れは今poorだ。金くれ。
0482nobodyさん2006/06/15(木) 21:20:04ID:???
Spreadsheet_excel_writerを試用してるんですが、
セルに数値を入れるときカンマ区切りで表示する方法ないですかね?
NumFormatでもできないようなので、PHP側でnumber_formatして
代入しているのですが、office2003のexcelで開くと
文字列として認識され激しく鬱です。
当然関数も使えなくなりますし…
0483nobodyさん2006/06/15(木) 22:42:31ID:???
>>482
void Format::setNumFormat (integer $num_format)
04844822006/06/15(木) 23:35:37ID:???
>>483
恥ずかしながらそのメソッドのマニュアルを見ても、
カンマ区切りのやり方が思いつかないんですが・・・。

ソース読まなきゃだめですか?
0485nobodyさん2006/06/16(金) 03:02:14ID:???
PEARのライブラリって、Zendの人が作ったものの割合はどれくらいなんだろう?
なんかもうひとつイマイチなものが多かったりするんだが、
Zendの開発力ってあの程度のものなのかな。
0486nobodyさん2006/06/16(金) 03:34:33ID:???
PEARの人って、
・元々PHP本体や拡張やってた人
・Zendの人でPHPの本体、特にZEやってる人
と余りかぶってない気がする。PECLの方は、元々は
拡張でやってたのをPECLに出したものが多いけどね。
0487nobodyさん2006/06/17(土) 13:02:44ID:???
あれ、pear.php.netの鯖おちてるぞ
0488nobodyさん2006/06/17(土) 15:04:46ID:???
>>487
日常茶飯事だからいちいち報告しなくてもいいよ。
0489nobodyさん2006/06/18(日) 15:11:03ID:???
php使ってるからね。
検索エンジンが来たら落ちます。orz
0490nobodyさん2006/06/19(月) 16:42:02ID:???
いつの間にかHTML_QuickForm2なんてのがある
0491nobodyさん2006/06/19(月) 16:46:27ID:???
>>490
なにーーーーー
1との互換性はあるのか?
ファイルのアップロードはサポートされるのか?

ちょっといってくる
0492nobodyさん2006/06/19(月) 17:09:57ID:???
http://pear.php.net/package/HTML_QuickForm2
The package development is currently in planning stage.

...orz

待つか
0493nobodyさん2006/06/19(月) 18:02:43ID:???
1と同じ機能らしいけどどうだろ
欲しい機能ある?

one time token実装して欲しいなー
0494nobodyさん2006/06/21(水) 12:59:40ID:af4RZ/Sl
MAC OS 10.4でpearをインストールするためにコマンドを打ち込むと
Warning: touch(): Unable to create file /usr/lib/php/.lock because Permission denied in Registry.php on line 284
could not create lock file: failed to open stream: No such file or directory
というエラーが出てしまうのですが、どこのパーミッションを変えればよいのでしょうか?
0495nobodyさん2006/06/21(水) 13:20:26ID:???
/usr/lib/php/ ディレクトリか、
/usr/lib/php/.lock のファイルのどちらか。

まずは .lock を消して試すことだね。
0496nobodyさん2006/06/21(水) 19:17:43ID:???
レンサバでPEARを使うにはどうすればいい?誰か教えて
0497nobodyさん2006/06/21(水) 19:40:50ID:???
>>496
管理にお願いするか

自分で書き込めるディレクトリ(DocumentRoot外が望ましい)に手動で置いて
includ_pathを通す。
0498nobodyさん2006/06/21(水) 21:32:47ID:???
>>494
sudo
04994982006/06/21(水) 21:37:25ID:???
あ、ごめん。質問内容が違ってたね

と言ってみる
0500nobodyさん2006/06/21(水) 23:56:04ID:???
マカは氏ね。
0501nobodyさん2006/06/22(木) 14:12:58ID:347Blei1
HTML_QuickFormでフォームの入力検証を行っているのですが
グループ要素の検証を行う時、
ttp://www.okushin.co.jp/information/HTML_QForm/10_addGroupRule/
ここを参考にaddGroupRuleで以下のように書いたのですが
これだとクライアントで検証を行ってくれません。
色々なところに「,"client"」などを色々挿入してみたのですが、どうもうまくいきません。
複合要素の配列を使った検証で、クライアント検証をさせるにはどのように書けばよいのでしょうか。

$form->addGroupRule("pay", array(
"money"=>array(
array("金額は必須入力です。","required"),
array("金額は数字のみで入力して下さい。","numeric")
)
));
0502nobodyさん2006/06/22(木) 20:39:31ID:5nFH6Fdq
>>496

telnetとかつかえる?

方法はいろいろあるみたい。
http://www.go-pear.org/manual/ja/installation.shared.php

さくらでは、普通にpear install  -o PAER でローカルコピーできた。
ほかのとこでは、
-bash-2.05b$ lynx -source http://pear.php.net/go-pear | php4
とかいう感じでいけそうだった。
0503nobodyさん2006/06/24(土) 08:49:42ID:???
PEAR にもよるけど、
単純にファイルコピーで使えたりするしね。
0504nobodyさん2006/06/24(土) 14:46:40ID:???
>>503
手動でコピー(展開)してパス通してたら使えないの有るの?
知ってるなら具体的に教えて。
なんかの参考になるかもしれんし
0505nobodyさん2006/06/24(土) 17:53:54ID:???
>>504
単純に外部ライブラリに頼るものじゃね
GD前提のモジュール(あるか知らないけれど)とかがあるとして
シェル使えなくてGDがレン鯖にも入ってなくて、
サポートもされないならそれは使えない
もちろんそれはPEAR自体の問題ではないけどね
0506nobodyさん2006/06/25(日) 02:29:16ID:???
pear installはできるのにpear list-allができん、今まで問題なかったのになんじゃこりゃ。
原因分かる方おしえてくだされ

XML error at line 1, check URL
Invalid return payload: enable debugging to examine incoming payload
0507nobodyさん2006/06/25(日) 13:35:09ID:???
pear list-upgrades してみるとか。
0508nobodyさん2006/06/25(日) 14:48:24ID:???
pear list -a
は出る?
0509nobodyさん2006/06/25(日) 15:59:40ID:???
>>507,508
ありがとう、無事できました。
upgrade-allでupgradeできたと思ってたんだけど、list-upgradesしたらどれもアップグレードできてませんですた。
で、PEARとXML_RPCを個別で指定してアップグレードしたところchannelがなんたらかんたらと言われて、
それにしたがったところ動くようになりました。
0510nobodyさん2006/07/11(火) 19:31:23ID:???
PEAR::DB
This package been superseded by MDB2 but is still maintained for bugs and security fixes

MDB2 使うぐらいだったら、PDO の方が良いような…。
0511nobodyさん2006/07/19(水) 02:41:49ID:bvrYbrpe
Services_Amazon(ver0.5.0)使ってみたんですけど、
複数キーワードの場合どう指定すればいいのかわからんです。
おしえてえらいひと

ソースはこれまんま使わせてもらったです
ttp://dozo.rgr.jp/log/eid194.html
0512nobodyさん2006/07/19(水) 03:02:13ID:???
自分で拡張しないとダメでしょ。自力で弄れないならver1.0まで待てば?
漏れなら単発で引いて、自分でマージ。
0513nobodyさん2006/07/20(木) 14:43:10ID:9HfxuTZk
PEARインストールし、PEAR::DBを試そうとしています。
マニュアルで見ると、なにごともDB.phpのインクルードから的な感じで
説明なくそうなってますけど自分の環境にはDB.phpがありません。(インストール失敗してる?)
エラーもその旨出ます("DB.phpが見つからない")

おききしたいのは、インストール時に「DB.php」というファイルが生成されるのか、
phpをインストールしたときのように、なにか別のファイルの名前を変更するなどして自分でつくるとか、
そのあたりどういった具合になるんでしょうか。
環境はWinXPのsp1、phpは5.1.4です。
0514nobodyさん2006/07/20(木) 15:03:18ID:???
>>513
どうやってインストールして、どのようにインストールが成功したと判断したの?
pear listで表示される?

表示されるなら、PEARのフォルダがinclude pathに含まれていないんじゃないかな?
05155132006/07/20(木) 17:26:23ID:???
>>514
ありがとうございます。
pear listではパッケージの一覧が表示されますし(すべて"安定"との表示)、
include_pathも確認済みです。

インストールはコマンドプロンプトからhttp://go-pear.orgにアクセスしてインストールしました。
その際にそれぞれのパッケージに対してダウンロードok,インストールokというような表示が逐一出まして、最後まで進んで終了しました。

最後に以下の警告が表示されました。
ひとつはWindowsの環境変数のパスが違っていると言うもの→PHPのマニュアルに従ってパスをC:\php\extにしていたが、警告を受けてC:\phpに戻しました。
それとphp.iniのinclude_pathに対してのもの→PEARへのパスを追記。
他に、phpフォルダ直下のPEAR_ENV.regをWindowsのレジストリに追加しておくと便利、という表示に従い、
意味はわかりませんでしたが実行しました。

何度かやり直し、今も確認してたんですが、やはりDB.phpというファイルはなく、
スクリプトの実行エラーもDB.phpが見つからない、という内容のままです・・・
0516nobodyさん2006/07/20(木) 17:55:03ID:???
>>515
一見問題なさそうだけど・・・。

インストールは普通コマンドプロンプトから
pear install パッケージ名
で良いですよ。
pear listで表示されるstableは安定版という意味で、β版やα版を
入れるときは pear config-set preferred_state beta なんてことをやってから
インストールします。予断ですが。

一度 pear uninstall DB でアンインストールして、再インストールして見てはどうでしょう?

それと確認ですがDB.phpは本当にどこにもありませんか?
HDDを検索してみてはいかがでしょう?
05175132006/07/20(木) 18:46:05ID:???
>>516
ありがとうございます!解決できました。
おしえていただいたアンインストールのコマンドを試してみたら
"インストールされてません"とのメッセージが・・・
その後pear install DBとしたところDB.phpも現われ、スクリプトも実行できました。
インストールされてればpear listでもちゃんと"DB"と表示されるんですね・・・
今まではPEARを使うための準備をしてただけなのに勘違いしてました・・・
PEARをインストールすれば主だったパッケージはインストールされてるものとばかり・・・(恥)
もう何日かごちゃごちゃやっていたので本当にたすかりましたm(_ _)m
0518nobodyさん2006/07/20(木) 19:02:35ID:???
>>517
うーむなんだかw
ま解決して何より。

もうひとつ豆知識として、モジュールには依存関係がある場合が
あるんだけど、依存するモジュールもまとめてインストールするときには

pear install --alldeps モジュール名

という書き方もできる。
また、インストール済みのモジュールは、

pear upgrade-all

で最新版(がリリースされてれば)に更新できる。

この2つくらいは覚えとき。
05195132006/07/20(木) 22:11:04ID:???
>>518
たびたびすいませんー。そのコマンドが心に沁みまする^^
いろいろ学んでいきたいと思ってます。
0520nobodyさん2006/07/23(日) 04:35:31ID:becjw5iF
横からすみません。
PEAR::Auth使ってるのですが、少し時間が空くとusernameが空になる現象に困っています。
$myAuth->username から $myAuth->getUsername()に変えても直りません。
お助けください><;;
0521nobodyさん2006/07/23(日) 04:43:40ID:???
$myAuth->getAuth()はtrueが帰って来ています。
30分ぐらい(?)他っておくと(アイドルにしておくと)起こるようです。
PHP5で最近pear install Authしました。
05225202006/07/23(日) 04:56:36ID:???
訂正します。
時間が空かなくても、ページ移動するごとにログインしている状態(getAuthがtrue)なのにusernameが空になっているようです...
0523nobodyさん2006/07/24(月) 17:55:27ID:WjQLi7Eq
HTML_Template_Flexy についての質問です。
自宅環境で正常に動作するスクリプトを作ったのですが、レン鯖にアップすると
コンパイルが正常に行われません。

具体的には、HTMLタグが全て"Array"という文字になり、本来PHPコードに変換されるはずの{variable}等が
全く変換されず、そのまま出力されてしまいます。
PEARやHTML_Template_Flexy の再インストールもやってみましたが、変化ありません。
念のため php.ini の mbstring 関連の設定も揃えてみましたが、こちらも変化ありませんでした。

このような場合、どのような原因が考えられますでしょうか?
チェックすべき項目などがありましたらご指摘お願いします。
0524nobodyさん2006/07/25(火) 09:30:59ID:???
自宅環境とレン鯖環境ぐらい晒したら?
ちょっとチェック用のスクリプト作って動作チェックぐらいして無いの?
0525nobodyさん2006/08/02(水) 03:18:27ID:aylqqE98
すみませんが教えてください。
PEARのDBを使って、DB側で設定されたシーケンス値を
インサート後に取得する方法ってありますでしょうか?

PEARのマニュアルの警告には、シーケンスはDBMS側を使わずに、
PEARの中で管理しろと書いてあるのですが、
やっぱりDB側のシーケンスは使ってはだめなんですかね・・・?
0526nobodyさん2006/08/02(水) 10:38:05ID:???
>>525
INSERT 前に nextId() を使って、次のシーケンスを取得しておいて
それを INSERT して、その後参照する場面でもそのシーケンスを使いまわす。
0527nobodyさん2006/08/02(水) 12:41:04ID:???
>>526
やっぱりその手しかないのですよね。
ありがとうございました。
0528nobodyさん2006/08/24(木) 23:34:20ID:KkbLy53/
PEAR::DBに関しての質問なのですが、
$db->setFetchModeを「DB_FETCHMODE_ASSOC」に指定すると、
2つのテーブルで同じ名前の列がある場合、片方しかとれません。

たとえば、
create table t1 (id integer, data varchar(10));
create table t2 (id integer, data varchar(10));

とした時に、下のようなSELECTを実行します。

select t1.id, t1.data, t2.id, t2.data from t1, t2 where t1.id = t2.id

すると、かえってくる連想配列の内容をprint_rでみると
Array
(
[id] => 1
[data] => data1
)
こんな内容が帰ってきます。FETCHモードが、「DB_FETCHMODE_ASSOC」の場合、
指定した列すべて取れないのでしょうか・・・?期待していたのは下のような結果なのですが。
Array
(
[t1.id] => 1
[t1.data] => data1
[t2.id] => 1
[t2.data] => data2
)
ちなみに、PHPは4.3.11、PEAR::DBは1.7.6、DBはpostgreSQLでV8.xです。
ご存知の方、いらっしゃいましたら教えてください。よろしくお願いいたします。
0529nobodyさん2006/08/24(木) 23:38:19ID:???
>>528
t1.data AS t1_data, t2.data AS t2_data,
みたいにエイリアスで別々の名前つけてやって取得すればいけると思う
0530nobodyさん2006/08/25(金) 00:23:23ID:???
>>529
そのとおりでした。
ありがとうございました。
0531nobodyさん2006/09/09(土) 15:30:02ID:???
他スレに質問しましたが、PEARの話題はスレ違いだったのでこちらで、質問させて頂きます。
えろいひとがいましたら、おしえてくれたりしてください。

php4.3 redhatES4 apache1.3 mysql4.1 です。
PEARのDB_DataObjectで「UPDATE」するときの質問です。
DB_DataObjectのインクルードや設定ファイル読み込みが終わったとしします。

numが1のデータを探して年齢を変更するといった場合は

$hoge=DB_DataObject::factory("hoges");
$hoge->get(num,1);
$hoge->age = 15;
$hoge->update();

でできるのですが、numが1で名前がyamadaのデータの年齢を変更するといった場合がうまくできません。

$hoge=DB_DataObject::factory("hoges");
$hoge->whereAdd('id = 1');
$hoge->whereAdd('name = yamada');
$hoge->age = 15;
$hoge->update();

PEARのドキュメントをみても、複数絞込みのUPDATEの例がなくてこまっています。
直接SQL query()をなげるしかないのでしょうか。
0532nobodyさん2006/09/09(土) 16:08:57ID:???
>>531
DB_DataObject の update() は基本的にユニークキーを指定して行なうものだけど
そうでなく自前で WhereAdd() した条件で広範囲に update() する時には
引数に定数をつけて update(DB_DATAOBJECT_WHEREADD_ONLY) してやるとよろしい
05335312006/09/09(土) 18:22:55ID:???
どうもありがとです。
たったそれだけのことなのですね。
基本的に2つに一致する条件のものは1つのレコードだけなのですが
まぁこのやりかたで解決しました。
0534nobodyさん2006/09/09(土) 19:19:05ID:???
解決おめ

蛇足だけど DB_DataObject は全体の傾向として
テーブルに必ず int ひとつだけのユニークキーがあるようにしてあると
扱いやすいようにできている気がする

開発工期を短く済ませるために DB_DataObject で扱いやすいテーブル設計をするとか
邪道っぽいけどとても効果的だったりw
0535nobodyさん2006/09/09(土) 19:34:57ID:????2BP(200)
たしかに、設計としてはアレだけど全部のテーブルに"auto_id"みたいなauto_incrimentを作っとくと便利
0536nobodyさん2006/09/16(土) 22:13:02ID:???
Requiring E_STRICT 通った
http://pear.php.net/pepr/pepr-proposal-show.php?id=419
PEAR新世紀幕開けか
■ このスレッドは過去ログ倉庫に格納されています