問題:ドライバの問題により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のようにインストールされています
エラーの検出を容易にするために、error_reportingをE_ALLに、display_errorsをOnに設定することができます(このファイルがシステム上にある場合、phpinfo()の出力の先頭に表示する必要があります)。多分あなたには見えないエラーがあります。 –
これは、mysqlへの接続に問題があることを示しています。そこで私はMAMPのポートを3306に戻し、私のコードで8889を取り出し、それがうまくいった。ありがとう。 –
将来の参考として、このタイプの質問はStackFlow.comの姉妹サイトであるServerFault.comに適しています。 –