2012-04-14 17 views
0

私はPHPを開発しており、さまざまな機能をテストするための簡単なファイルを用意しています。これを容易にするために、このファイルをコマンドラインから実行したいと思います。これは問題を引き起こしており、私はそれが何であるか分かりません。PHP PDO例外 - 端末から実行した場合のみ

このコードでは、PDOを使用しています。私は、PDOラッパーとして動作し、シングルトン設計のパターンを適用するDatabaseクラスを持っています。クラスはとてもシンプルです。ここでは、関連するコードの一部です:

// instance of PDO 
private static $db = null; 

//connection related fields 
const dsn = "mysql:dbname=mydb;host=localhost"; 
const user = "myuser"; 
const password = "mypass"; 

//get access to the PDO instance 
public static function get_instance() 
{ 
    if(!self::$db) 
    { 
     self::$db = new PDO(self::dsn,self::user,self::password); 
     self::$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     self::$db->exec("set names utf8"); 
    } 

    return self::$db; 

} 

今、私は次のようでテストファイルを作成する場合:

$db = Database::get_instance(); 

などのようなコマンドラインから実行します:

php5 ./testing.php 

を 「メッセージで 'ドライバが見つかりませんでした」PDOException これは、新しいPDOオブジェクトをインスタンス化する上記の行によって引き起こされます。

私のブラウザでこのファイルに移動し、それが正常に動作する私のWebサーバーによって提供されている場合、オブジェクトは期待どおりに動作します。

これは端末からPHPファイルを実行する際に問題があるようです。私はこれがコードの問題だとは思わない。誰もがこれを引き起こしている可能性が示唆できますか?どんな助言や助けも本当に感謝しています。ありがとう。

答えて

3

PHPのコマンドラインバージョンは、Webバージョンとは異なる設定にすることができます。適切なPHP設定ファイルを探し、データベースドライバを設定してください。

2
/usr/local/php/bin/php -> /usr/bin/php 

/usr/bin/php PHPのコマンドライン版、 /usr/local/php/bin/phpあるウェブ版

ある

lnコマンドを試してみてください
関連する問題