人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHP、PEARについて質問です。

XAMPPで標準についてるPEARを試すために、とりあえずDB.phpを使ってみようと思い、
「require_once("DB.php");」としてみたところ、下記のようなエラーがでました。

Warning: require_once(PEAR.php): failed to open stream: No such file or directory in D:\xampp\htdocs\cake\Test\DB.php on line 30

これは具体的には何をどのように改善したら、うまくincludeできるのでしょうか?
ちなみにphpinfo()で確認したところ、include_pathは「.;D:\xampp\php\PEAR」となっていました。

また、PEARはライブラリーとして古く使うべきではないと
どこかで聞いたことがあるのですが、それは本当なのでしょうか?
もしかわりになるライブラリーがありましたらあわせておしえてください。

環境は最新のVista Home Premium、最新のXamppのPHP5、プラウザはIE,Firefoxです。
以上、よろしくお願いします。

●質問者: taroemon
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Cake dB firefox HOME IE
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● ホーエンハイム
●18ポイント
peardev install DB

は実行しましたか? ご確認ください。


また、PEARはライブラリーとして古く使うべきではないと

どこかで聞いたことがあるのですが、それは本当なのでしょうか?

使うべきでないかどうかは分かりませんが、PHP5ではPEAR::MDB2 を使うことが勧められています。

◎質問者からの返答

ご回答ありがとうございます。


この処理はしてませんでした。

さっそくコマンドプロンプトを開き、peardev.batのあったD:\xampp\phpに移動し、

peardev install DBを実行したところ、

pear/DB is already installed and is the same as the released version 1.7.13install failed

というメッセージが出ました。質問のエラーは出たままです。

どこが問題なのでしょうか?


2 ● tobeoscontinue
●52ポイント ベストアンサー

include_pathがphpinfo()では「.;D:\xampp\php\PEAR」となっていたものが

Testでは「.;D:\xampp\htdocs\cake\Test」とPEARへのパスが消えてしまっていることが原因です。

その箇所が特定できるのなら

$path = "D:\xampp\htdocs\cake\Test";
set_include_path(get_include_path().PATH_SEPARATOR.$path);

のように既存のinclude_pathに追加するようにします。(現在は上書きしているのでPEARへのパスが消えた)


include_pathを設定している箇所が特定できないならrequire_once("DB.php");の前に

$path = 'D:\xampp\php\PEAR';
set_include_path(get_include_path().PATH_SEPARATOR.$path);
require_once("DB.php");

として「.;D:\xampp\htdocs\cake\Test」の後ろにPEARへのパスを追加します。


DB.phpは既に開発は止まっておりPHP4が主だったように感じています。PHP4でもクラスは使えますがPHP5とは少し違います。

またPHP4自体も開発が終了します。このような事からDB.phpは使わないほうがいいように思います。

PDOを検討してみてはどうでしょう。

データベースに特定したコードを書くわけではないのでデータベースを変更する場合に修正が少なくなることが期待できます。

◎質問者からの返答

どうやらうまくいったようです。

また、PDOも教えていただいてありがとうございます。

さっそくこちらも勉強してみることにします。

最新のXamppではじめからついてるいるPEARが時代遅れというのは不思議な感じですね。

コメントにひきつづき丁寧なご回答ありがとうございました。


ところで、なんで『Testでは「.;D:\xampp\htdocs\cake\Test」とPEARへのパスが消えてしまっている』んでしょう?

環境PATHの設定の仕方が悪かったのか、Cake PHPがいたずらしてるのか、僕が思い当たるのはそんなところです。

どなたか時間のある時にでもコメントいただければ大変勉強になります。よろしくお願いします。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ