トップページphp
689コメント237KB

【PHP】PEAR Part3

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/09/03(月) 12:15:51ID:l6O4U4Dh
■PEAR
http://pear.php.net/
■PEAR マニュアル 邦訳
http://pear.php.net/manual/ja/
■PEAR オフィシャル blog
http://blog.pear.php.net/

■前スレ
【PHP】PEAR Part2
http://pc11.2ch.net/test/read.cgi/php/1122899232/

■過去スレ
Pear
http://pc8.2ch.net/test/read.cgi/php/985665522/
0002nobodyさん2007/09/03(月) 13:16:17ID:???
Pear2Pearを語るスレ
0003nobodyさん2007/09/07(金) 16:39:26ID:???
MDB_QueryToolで3つのテーブルをJOINしたいんだけど、
どうやったらいいのか分かりません。

表A
Id,a_name
1,name1
2,name2

表B
Id,b_name
1,name1
2,name2

表c
Id,c_name
1,name1
2,name2

A.id = B.id and A.id=C.id and B.id =C.idの条件で結合して
Id,a_name,b_name,c_name
が欲しいんだけど、どうやって3表をJOINしたらいいのか、
JOINの条件はどう指定したらいいのか分からないので、
教えてください。orz
0004nobodyさん2007/09/07(金) 16:57:00ID:???
select * from A natural join B natural join C
でどうかしら?
0005nobodyさん2007/09/07(金) 17:32:08ID:???
>>4
d。
でも可能な限りMDB_QueryToolでやってみたいのです。

SQLなら
select A.Id,A.a_name,B.b_name,C.c_name  from A,B,C
where A.id = B.id and A.id=C.id and B.id =C.id
でも良いと思うのです。

MDB_QueryToolじゃJOINの入れ子は無理かなぁ。
出来たとしても、インラインビューとかサブクエリの使えない
MySQL3.23では実行できない可能性も高いけど・・・orz
0006nobodyさん2007/09/07(金) 17:56:07ID:???
>>5
http://pear.php.net/manual/ja/package.database.mdb-querytool.api.php
ドキュメント見る限りsetJoinでテーブル名3つと条件まとめて指定か
addJoinでテーブルと条件をそれぞれ追加していけばいいんじゃないか?
QueryTool使ったことないのでなんとも言えないが
0007nobodyさん2007/09/07(金) 19:09:08ID:???
>>6
d
setJoin(Array('A','B','C'),'A.id = B.id and A.id=C.id and B.id =C.id');
とかやってみればいいのかな。

最初にsetJoin + addJoinでやってみたけど、
getQueryStringが戻ってこなかったんだよ。orz

とりあえず、QueryTool使わずに
目的の戻り値は得られたんだけど、
もうちょっと精進してみるわ。
0008nobodyさん2007/09/14(金) 10:00:28ID:ri4+Axdv
sendmail_path 『/usr/sbin/sendmail -t -i』

$params['sendmail_path'] = "/usr/sbin/sendmail";
$params['sendmail_args'] = "-t -i";

$mail =& Mail::factory('sendmail', $params);

を行うと、PEARで下記のエラーが返ってきます。

Unable to find class for driver sendmail

サーバーではsendmailが使えるはずなのに、sendmailへのパスが見つからないということでしょうか?
000982007/09/14(金) 12:49:35ID:ri4+Axdv
解決しました。
原因はMailディレクトリをアップロードしていませんでした
0010nobodyさん2007/09/14(金) 14:09:12ID:sjZ28MC/
テラアホス
0011nobodyさん2007/09/20(木) 18:39:15ID:???
query()とexecute()の違いが良く判りません

日本語マニュアルだとquery()は
>パラメータ $params を指定しており、クエリ内で プレースホルダを使用している場合に、 prepare() および execute() の代わりに使用されます。
とのことなんですが、execute()でもプレースホルダは使えますよね・・・
query()を使った方が性能がいいんでしょうか。
0012nobodyさん2007/09/21(金) 12:37:06ID:bsogWMXa
くだ質にいけよwww
0013nobodyさん2007/09/21(金) 13:30:24ID:???
>>11
DBはもう使うなMDB2使え
で、MDB2ではSELECTする時はquery、INSERT/UPDATE/DELETEする時はexecだ
データを要求して受け取るのかDB内部でデータ操作を行うのかの違いだ
0014nobodyさん2007/09/22(土) 16:54:38ID:???
ありがとうございます
MDB2の学習をしてみようと思います
0015nobodyさん2007/09/28(金) 17:36:14ID:???
こんにちは
追加インストールした二つのモジュールについて質問です。
-------------------------------------------------
  require_once "HTTP/Request.php";
  require_once "HTTP/Client.php";
-------------------------------------------------
Request.phpは読んでくれるのですが
Warning: main(HTTP/Client.php) [function.main]: failed to open stream: No such file or directory となります。
HTTPディレクトリには両方とも入っており(その下のクッキーマージャーも)正常だとは思うのですが…
.httには「php_value include_path ".:/home/ああああ/pear/PEAR"」と書いてあります
何かコンフィグを編集しないといけないのでしょうか?
0016nobodyさん2007/09/30(日) 13:12:18ID:???
include_pathの通ってるところにファイルが無いだけ
0017152007/10/01(月) 09:17:14ID:???
別のディレクトリに再インストールして
改めてパスを通したら動作しました。
どうしてRequestは動いてclientは見つけてくれなかったんだろう…
0018nobodyさん2007/10/01(月) 10:36:58ID:???
PEARのDB使うとクエリ実行のときに勝手にSQL分がエスケープされてるの?
■ このスレッドは過去ログ倉庫に格納されています