麻烦让MAMP与PDO-MySQL一起工作

问题描述 投票:0回答:1

问题:由于驱动程序问题,Doctrine测试应用程序无法正常工作。

设置:Mac OS X 10.5.7(不是服务器),MAMP 1.7.2,Doctrine 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);

?>

这是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
mysql macos doctrine pdo mamp
1个回答
0
投票

在您的MAMP配置中似乎没有正确安装PDO模块。当您运行phpinfo()时,您应该有一个名为PDO的块,它定义了哪些PDO驱动程序已启用。

我的phpinfo页面有一个这样的块:

PDO
PDO support enabled
PDO drivers     mysql 

您应仔细检查以确定您的MAMP安装具有所有可用的库文件。

© www.soinside.com 2019 - 2024. All rights reserved.