2009-07-24 8 views
0

問題:ドライバの問題によりDoctrineテストアプリケーションが動作しません。MAMPがPDO-MySQLで動作するのに問題があります

セットアップ:MacのOS X 10.5.7(サーバーではなく)、MAMP 1.7.2、教義2.2.1、PHP 5.2.6

私は上の開発環境を設定しようとする教義documentationを以下のい私のローカルマシン。 Webからページを実行すると(MAMPを介して)、空の画面が表示されます(エラーはMAMPによって表示されないため、私は仮定しています)。テスト環境(Debian Lenny)でページを実行すると、すべてが完璧に動作し、画面に出力が表示されます。

私は数時間それを理解しようとしていましたが、私はできませんでした。どんな洞察にも感謝します。

ここでは、コマンドラインから実行した場合の出力を示します。ここで

justingiboney$ php test.php 

Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in /Applications/MAMP/htdocs/doctrine_test_site/bootstrap.php:16 
Stack trace: 
#0 /Applications/MAMP/htdocs/doctrine_test_site/bootstrap.php(16): PDO->__construct('mysql:dbname=fa...', '****', '****') 
#1 /Applications/MAMP/htdocs/doctrine_test_site/test.php(4): require_once('/Applications/M...') 
#2 {main} 
thrown in /Applications/MAMP/htdocs/doctrine_test_site/bootstrap.php on line 16 

ここでtest.phpを

<?php 
// test.php 

require_once('bootstrap.php'); 

$conn->export->createTable('test', array('name' => array('type' => 'string'))); 
$conn->execute('INSERT INTO test (name) VALUES (?)', array('jwage')); 

$stmt = $conn->prepare('SELECT * FROM test'); 
$stmt->execute(); 
$results = $stmt->fetchAll(); 
print_r($results); 

?> 

私はMAMPページを介してのphpinfo()を実行した場合、私はそれが見えるように数行を参照してくださいbootstrap.phpの

<?php 
// bootstrap.php 

/** 
* Bootstrap Doctrine.php, register autoloader specify 
* configuration attributes and load models. 
*/ 
require_once(dirname(__FILE__) . '/lib/vendor/doctrine/Doctrine.php'); 
spl_autoload_register(array('Doctrine', 'autoload')); 
$manager = Doctrine_Manager::getInstance(); 

$dsn = 'mysql:dbname=****;host=127.0.0.1:8889'; 
$user = '****'; 
$password = '****'; 

$dbh = new PDO($dsn, $user, $password); 
$conn = Doctrine_Manager::connection($dbh); 
$conn->setOption('****', $user); 
$conn->setOption('****', $password); 

?> 

ですPDO-MySQLのようにインストールされています

+1

エラーの検出を容易にするために、error_reportingをE_ALLに、display_errorsをOnに設定することができます(このファイルがシステム上にある場合、phpinfo()の出力の先頭に表示する必要があります)。多分あなたには見えないエラーがあります。 –

+0

これは、mysqlへの接続に問題があることを示しています。そこで私はMAMPのポートを3306に戻し、私のコードで8889を取り出し、それがうまくいった。ありがとう。 –

+2

将来の参考として、このタイプの質問はStackFlow.comの姉妹サイトであるServerFault.comに適しています。 –

答えて

0

PDOモジュールがMAMP構成に正しくインストールされているようではありません。 phpinfo()を実行するときは、有効になっているPDOドライバを定義するPDOというブロックが必要です。

私のphpinfoのページには、このようなブロックを持っている:

 
PDO 
PDO support enabled 
PDO drivers  mysql 

あなたはMAMPのインストールが必要なすべてのライブラリファイルが使用可能であることを確認するためにダブルチェックする必要があります。

+0

申し訳ありませんがその行を逃した: からphpinfo()のPDOドライバ、クライアントライブラリのバージョン\t 5.0.41 –

+0

と、すべての必要なライブラリがあるかどうかを確認するにはどうすればよいですか?私はどこを見て、私は何を探しますか? –

関連する問題