-1

問題: ドライバーの問題により、Doctrine テスト アプリケーションが機能しません。

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

ドクトリンのドキュメントに従って、ローカル マシンに開発環境をセットアップしようとしています。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);

?>

これが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);

?>

MAMP ページで phpinfo() を実行すると、PDO-MySQL がインストールされているように見える数行が表示されます

--with-pdo-mysql=shared,/Applications/MAMP/Library

PDO drivers | sqlite2, sqlite, pgsql, mysql

PDO Driver for MySQL, client library version    5.0.41
4

1 に答える 1

-1

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

私のphpinfoページには次のようなブロックがあります:

PDO
PDO サポートが有効
PDO ドライバー mysql

MAMP インストールに必要なすべてのライブラリ ファイルが利用可能であることを再確認する必要があります。

于 2009-07-24T02:58:08.437 に答える