• 締切済み

PEAR::DBの利用について

先日、LAMPのインストールが完了しました。 そこで、PHPからMySQLを操作するにPHPの拡張モジュールであるPEAR::DBを利用しようと考えました。 #sudo apt-get install pear とし、pearをインストールしたあとで、 #sudo pear install DB としてDBモジュールをインストールしました。 #sudo pear list Installed packages, channel pear.php.net: ========================================= Package Version State Archive_Tar 1.3.3 stable Auth_SASL 1.0.3 stable Console_Getopt 1.2.3 stable DB 1.7.13 stable Log 1.11.6 stable Mail 1.1.14 stable Net_SMTP 1.3.4 stable Net_Socket 1.0.9 stable PEAR 1.9.0 stable Structures_Graph 1.0.3 stable XML_Util 1.2.1 stable 上記がインストールされているものです。 しかし、MySQLにどうしても接続することができません。 /* require_once("DB.php");   // 接続設定  $dbtype = "mysql";   $sv = "localhost";   $dbname = "sampledb";   $user = "root";   $pass = "*******";   // データベースに接続する   $dsn = "$dbtype://$user:$pass@$sv/$dbname";   $conn = DB::connect($dsn);   if (DB::isError($conn)) {   die("接続エラー"); } */ とくに必要な設定とかはあるのでしょうか? php.iniの設定をしなければならないなど。windowsの場合、インクルードパスにpearのインストール先絶対パスを追記したのを覚えています。 どなたか、アドバイスお願い致します。よろしくお願い致します。 環境やバージョン os Linux ubuntu 2.6.31-16-generic apache 2.2.12-1ubuntu2.1 mysql-server 5.1.37-1ubuntu5 php 5.2.10-2ubuntu6.3

  • PHP
  • 回答数3
  • ありがとう数1

みんなの回答

noname#243182
noname#243182
回答No.3

「sudo apt-get install php5-mysql」をお試しください。

  • oraora777
  • ベストアンサー率20% (56/268)
回答No.2

直接の回答ではないけどPEAR:DBはメンテナンスのみで開発が終了しています。 PEARの公式サイトでもPEAR:DBからPEAR:MDB2に以降を促すメッセージが書かれています。 初めてやるならわざわざPEAR:DBを使う必要性は無いでしょう。 PEAR:MDB2を使いましょう。使い方もかなり同じで使えます。 >とくに必要な設定とかはあるのでしょうか? >php.iniの設定をしなければならないなど。 MySQLの動的ライブラリ(php_mysql.so)を呼び出すようになっている?

woo_oow
質問者

補足

ご回答下さりまして有難うございます。 PEAR::MDB2は、今後プログラムを組んでいく上で利用させて頂きます。的確なアドバイスをありがとうございます。 ところで、MYSQLのライブラリphp_mysql.soがエクステンションされておりませんでした。ライブラリが存在してしていないように思います。 No.1さんの補足をご確認頂き、引き続きアドバイス頂ければ幸いです。 よろしくお願い致します。

  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.1

具体的にどういうエラーが出ているのか教えてください。 connect直後のエラーチェックを、 if (DB::isError($conn)) { die($conn->getMessage()); } とすれば、エラーの詳細が表示されます。 それと、直接の回答ではありませんが、 PEAR::DB は古いライブラリです。今から新規にプログラムを作るのなら、PEAR::MDB2を使うことをオススメします。 http://itpro.nikkeibp.co.jp/article/COLUMN/20070827/280396/ http://project-p.jp/halt/anubis/blog_show/524

woo_oow
質問者

補足

ご回答頂き有難うございます。 エラー内容は、以下でした。 DB Error: extension not found これは、No.2さんのご回答にもありますように「php_mysql.so」ファイルがextensionされていないということでしょうか? php.iniの設定内容を確認しましたが、それらしき記述が見当たりません。 コンソール上で上記ファイルを探してみましたが、見当たりませんでした。apt-getでphpをインストールする場合、どのように指定してインストールすればいいのでしょうか? 申し訳ありませんが、アドバイスを引き続きお願い致します。 PEAR::MDB2は確認させて頂きました。PEARの本家サイトにも、導入のしかたが載っておりましたのでそちらも参考に致します。windowsで組んだプログラムがPEAR::DBを使用しているので、とりあえずは、PEAR::DBを使用する方向でお願い致します。

関連するQ&A

  • MySqlに接続できない

    環境:PHP5,MySql5,XP 下記の構文でDBへの接続エラーがでます。 php.iniでのインクルードpathの設定もあっています。 (DB.phpも上記インクルードpathにあります) 'pear list'コマンドでDBも確かにインストールされています。 これ以外でチェックするところがあれば、教えてください。 <?php // DBクラスモジュールをインクルード require_once("DB.php"); $dbtype = "mysql"; $sv = "localhost"; $dbname = "********"; $user = "root"; $pass = "******"; // データベースに接続する $dsn = "$dbtype://$user:$pass@$sv/$dbname"; $conn = DB::connect($dsn); if (DB::isError($conn)) { die("接続エラー"); } ?>

    • ベストアンサー
    • PHP
  • FC4でmysqlを使用して PEAR DB への接続ができない

    FC4に、yumでPHP5.0.4、php-pear-5.0.4、php-mysql-5.0.4、(mysql-4.1.20,mysql-server-4.1.20)をインストールしました。 <?php $con = mysql_connect("localhost","taro","password") or die("接続出来ません"); print "接続しました"; mysql_close($con); ?> を実行すると、「接続しました」と出ます。ところが、 <HTML> <HEAD><TITLE>PHP test</TITLE></HEAD> <BODY> <?php require_once("DB.php"); $dbUser="taro"; $dbPass="password"; $dbHost="localhost"; $dbName="testdb"; $dbType="mysql"; $dsn="$dbType://$dbUser:$dbPass:@$dbHost/$dbName"; $conn = DB::connect($dsn); if(DB::isError($conn)){ die($conn->getMessage()); } print ('DBに接続しました'); $conn->disconnect(); ?> </BODY></HTML> を実行すると、DB Error: connect failed と出て、接続できません。 php.iniは、 include_path = ".:/usr/share/pear:/php/includes" としてあり、 [root@FC4 ~]# ls -l /usr/share/pear/ で調べても drwxr-xr-x 2 root root 4096 5月 27 18:06 DB -rw-r--r-- 1 root root 38937 11月 8 2005 DB.php となっています。 パスの切り方が間違っているでしょうか? どのようにすれば接続できるでしょうか?よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • XserverでpearのDBでMySQLに接続

    xserver(レンタルサーバー)でPHPでpearのDBクラスを使ってMySQL(データベース)に接続ができません。 Xserver(レンタルサーバー)環境 MySQL5 バージョン:5.0.77 MySQL5 ホスト名:xxx.xserver.jp(仮名) PHP Version 5.3.3 include_path .:/usr/share/php53/pear :/usr/share/php Xserver PHP関連の仕様一覧 PEARインストール済み <インストール済みライブラリ> ・Archive_Tar ・Auth ・Console_Getopt ・DB ・HTML_Common ・HTML_QuickForm ・HTTP ・HTTP_Header ・HTTP_Download ・Mail ・Net_SMTP ・Net_Socket ・Pager ・PEAR ・XML_Parser ・XML_RPC ・Structures_Grap データベースは同じくXserverに設置されているphpmyadmin(MySQL5)で作成しました。 /xxx.xsrv.jp/public_html/php_sample/Section63 の中に(dbtest2.php) でおいています。 ★以下のコードで接続ができません。 どこが間違っているのか教えて下さい。 ↓ <?php require_once("DB.php"); $dbUser = "sample"; // ユーザー名(仮名) $dbPass = "password"; // パスワード(仮名) $dbHost = "xxx.xserver.jp"; // ホスト名(仮名) $dbName = "sampledb"; // データベース名(仮名) $dbType = "mysql"; // データベースの種類 $dsn = "$dbType://$dbUser:$dbPass@$dbHost/$dbName"; $conn = DB::connect($dsn); // 接続に失敗したらメッセージを表示して終了します。 if (DB::isError($conn)) { die($conn->getMessage()); } print('接続に成功しました。'); // データベースから切断します。 $conn->disconnect(); ?> ★ちなみにPHPのmysql_connect関数からは接続成功しました。 ↓ <?php $con = mysql_connect("xxx.xserver.jp", "sample", "password") or die("接続できません。"); print "接続に成功しました。"; mysql_close($con); ?>

    • ベストアンサー
    • PHP
  • phpとデータベース

    書籍のサンプルを実行しても表示されません pearのインストールが怪しいですが、どこを直せばいいかわかりません。 ご教授お願いいたします。 <HTML> <HEAD> <TITLE>PHPのテスト</TITLE> </HEAD> <BODY> <?php require_once("DB.php"); $dbUser = "sample"; // ユーザー名 $dbPass = "password"; // パスワード $dbHost = "localhost"; // ホスト名 $dbName = "sampledb"; // データベース名 $dbType = "mysql"; // データベースの種類 // MySQL="mysql", PostgreSQL="pgsql", MS SQL-Server="mssql", ODBC="odbc" などを設定 // 接続文字列の作成 $dsn = "$dbType://$dbUser:$dbPass@$dbHost/$dbName"; // データベースに接続 $conn = DB::connect($dsn); // 接続に失敗したらメッセージを表示して終了します。 if (DB::isError($conn)){ die($conn->getMessage()); } print('接続に成功しました。'); // データベースから切断します。 $conn->disconnect(); ?> </BODY> </HTML>

  • 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になります。

    • 締切済み
    • PHP
  • PEAR::DBでのMySQL接続

    初心者で、環境が分からなくて困っています。 環境は、OS:Win2000 , PHP-V5.2.4 , MySQL-V5.0.45 , PEAR::DB -V1.7.13 です。 MySQLと、PEAR::DBをインストールして、CONNECTするPGを実行したところ、CONNECTエラーとなりました。 1.PHPソース require_once("DB.php"); $dsn="mysqli://pearusr:pearpass@localhost/pear"; $option=array( "autofree"=> TRUE, "debug"=>3, "portability"=> DB_PORTABILITY_ALL); $db=DB::connect($dsn,$option); if(DB::isError($db)){ die("接続失敗:".$db->getMessage().$db->getCode().$db->getDebuginfo()); } print("データベースへの接続に成功しました。"); $db->disconnect(); 2.エラーメッセージ 接続失敗:DB Error: connect failed-24 [nativecode=Can't connect to MySQL server on 'localhost' (10061)] ** mysqli://pearusr:pearpass@localhost/pear MySQL側の環境について、他QAでいろいろ教えていただき、ちゃんと起動できていそうです。 そうすると、次に疑うのは、PEAR::DBの環境がおかしいのではないか? という想像のもと、PEAR::DBの環境設定まわりで、確認すべき項目を教えていただけませんか。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PEAR::DBでプロセスは取得できる?

    お世話になります。 PHP5でPEAR::DBを使ってpostgresに接続しています。 $conn = pg_connect(略); を使えば $pid = pg_get_pid($conn); でバックエンドのプロセスIDが取れます。 ですが、PEAR::DBにも同じ機能を持つメソッドなどがあるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • php5,MySQL5で文字化けが起こる

    環境:php5,MySQL5,XP MySQL5は、インストール時にsjisを指定。 php.iniもmbstring.internal_encoding = SJIS ドスプロンプトでSelect文を発行すると漢字で表示されます。 $dbtype = "mysql"; $sv = "localhost"; $dbname = "*****"; $user = "root"; $pass = "*****"; // 文字コード $enc_disp = "EUC-JP"; $enc_db = "EUC-JP"; // データの文字コードを変換する関数 function cnv_enc($string, $to, $from) { // 文字コードを変換する $det_enc = mb_detect_encoding($string, $from . ", " . $to); if ($det_enc and $det_enc != $to) { return mb_convert_encoding($string, $to, $det_enc); } else { return $string; } } // データベースに接続する $dsn = "$dbtype://$user:$pass@$sv/$dbname"; $conn = DB::connect($dsn); $sql = "SELECT * FROM A"; $res = $conn->query($sql); →この後、SQLの内容をIEで表示させると ”2 Web?? 002 ??????????????”の様に テーブルの中の漢字の部分だけが??????で表示されます。 ヒント、参考になるサイトなど、教えていただけると幸いです。

    • ベストアンサー
    • PHP
  • PHPUnitでPDOのテスト

    PHPUnitで以下のようなテストをすると、エラーがでます。 <?php require_once 'PHPUnit/Extensions/Database/TestCase.php'; class DatabaseTest extends PHPUnit_Extensions_Database_TestCase { protected function getConnection() { $dbtype = "mysql"; $sv = "localhost"; $dbname = "testdb"; $user = "root"; $pass = ""; // データベースに接続する $dsn = "$dbtype:dbname=$dbname;host=$sv"; $pdo = new PDO($dsn, $user, $pass);           ← ここでエラー return $this->createDefaultDBConnection($pdo, 'book'); } protected function getDataSet() { return $this->createFlatXMLDataSet(dirname(__FILE__).'/book-seed.xml'); } public function testInitDataSet() { $dataset = $this->getDataSet(); $this->assertDataSetsEqual( $dataset, $this->getConnection()->createDataSet(), "データセットの初期化エラー" ); } } ?> エラー内容 PDOException: could not find driver could not find driverでググると、php.ini にextension=pdo.soを追加しろとありました。 pearでpdo.soをインストールし、php.iniに追加して、php(lampp)を再起動すると、 PHP Warning: Module 'PDO' already loaded in Unknown on line 0 となります。 どのようにすればよろしいのでしょうか? よろしくお願いいたします。 ubuntu10.10 xampp-linux-1.7.1(Apache:2.2.11,PHP:5.2.9,mysql:5.1.33) PHPUnit 3.4.13

    • ベストアンサー
    • PHP
  • PEARインストールについて(xampp

     こんにちは。 xamppを使いPHPの勉強をしております。 PEARインストールの段階で手が止まっており、他の質問を見ても解決せず困っております。 ・OSはWin xp(Home) ・これまでの手順  購入した本を元にPEARをインストールしようと致しましたが、うまく行かず。→購入した書籍のサイトでPEARインストールについて訂正があり、そちらも試したものの、上手くいきませんでした。  また、他のインストール方法を解説しているサイトを見てもなかなかうまくいきませんでしたが、とあるWebサイトの方法を試したところ、コマンドプロンプトにそれまでと違う表示が出てきて、いくつか段階が進みました。 【質問点】 次の結果は、インストールが無事に出来ているのでしょうか??? C:\Documents and Settings\Owner>cd C:\xampp\php C:\xampp\php>pear install MDB2 pear/MDB2 is already installed and is the same as the released version 2.4.1 install failed C:\xampp\php>pear install MDB2#mysql Skipping package "pear/MDB2", already installed as version 2.4.1 No valid packages found install failed C:\xampp\php>pear list INSTALLED PACKAGES, CHANNEL PEAR.PHP.NET: ========================================= PACKAGE VERSION STATE Archive_Tar 1.3.3 stable Console_Getargs 1.3.4 stable Console_Getopt 1.2.3 stable MDB2 2.4.1 stable MDB2_Driver_ibase 1.4.1 stable MDB2_Driver_mssql 1.2.1 stable MDB2_Driver_mysql 1.4.1 stable MDB2_Driver_mysqli 1.4.1 stable MDB2_Driver_oci8 1.4.1 stable MDB2_Driver_pgsql 1.4.1 stable MDB2_Driver_sqlite 1.4.1 stable Mail 1.1.14 stable Mail_Mime 1.5.2 stable Mail_mimeDecode 1.5.0 stable Net_SMTP 1.3.3 stable Net_Socket 1.0.9 stable PEAR 1.8.1 stable PEAR_Info 1.9.2 stable Structures_Graph 1.0.2 stable XML_Util 1.2.1 stable 以上です。 特に3つ目のコマンド(pear install MDB2#mysql)の結果が「上手くいってないのでは???」と首を傾げている状態です。 どなたかお分かりになる方がおられましたら、ご回答を頂けますようお願い致します。

    • ベストアンサー
    • PHP