- 締切済み
PEARのDBが動かない・・orz
PEARのDBを使ってMYSQLに接続しようとしているのですが、動作しません。 試しに↓のようなコードを書いたところ 画面「a」は出たのですが「b」が出ませんでした。 --コード----------------------------------------- require_once("DB.php"); $dsn = "mysql://user:password@localhost/db_name; echo("a"); $db = DB::connect($dsn , true); echo("b"); -------------------------------------------------- なにかエラーがでれば手がかりになるのですが、 エラーも何もでません。 MDB2で試しても結果は同じでした。 解決方法を教えて頂けないでしょうか? ちなみにPHPのversionは5.1.2 MYSQLは4.1.7になります。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- ducas2rk
- ベストアンサー率50% (4/8)
回答No.1
DB::connect()の第2引数は連想配列になるかと思われます。 例: $db = DB::connect($dsn, "autofree" => TRUE); PEARマニュアルより http://pear.php.net/manual/ja/package.database.db.intro-connect.php
補足
ご回答ありがとうございます。 PEARマニュアルサイトにある通りにコードを書いて 試してみたのですが、↓のようなエラーがでました。 --エラー内容------------------------------- Fatal error: Class 'PEAR' not found in c:\php\PEAR\DB\common.php on line 48 ------------------------------------------- それで、common.phpのコード48行目あたりを見たところ require_once 'PEAR.php'; class DB_common extends PEAR { とあり、 おそらくPEAR.phpのPEARクラスが継承されていないと いう事までは分かったのですが、なぜここでエラーが 出るのかが分かりません。 phpinfo()を表示させたところ、 include_pathには「.;c:/php/includes;c:/php/PEAR」 とあり、include_pathにPEAR.phpがあるディレクトリは 含まれています。 ちなみに、c:/php/includesにはSmartyを入れているのですが、Smartyはちゃんと動きます。 include_pathの書き方になにか不備があるでしょうか? また、コードの書き方が悪いのでしょうか? ご指示お願い致します。 --コード-------------------------------- require_once("DB.php"); $dsn = "mysql://user:password@localhost/db_name"; $options = array( 'debug' => 2, 'portability' => DB_PORTABILITY_ALL, ); $db =& DB::connect($dsn, $options); if (PEAR::isError($db)) { die($db->getMessage()); } $db->disconnect(); ---------------------------------------------