2009-07-24 110 views
0

问题:因为驱动程序的问题的学说测试应用程序不工作。麻烦甲基苯丙胺与PDO,MySQL的

设置:Mac OS X的10.5.7(而不是服务器),MAMP 1.7.2,2.2.1学说,PHP 5.2.6

我下面学说documentation尝试上建立一个开发环境我的本地机器。从网页(通过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 
+1

为了便于错误检测,可以设定使用error_reporting到E_ALL,并且对的display_errors上,在php.ini文件(其中该文件是您的系统应该附近的phpinfo的顶部()的输出来表示);也许有一个你看不到的错误。 – 2009-07-24 04:34:05

+0

好吧,这表明它无法连接到MySQL。于是我将MAMP端口切换回3306,并在我的代码中取出了8889,它工作正常。谢谢。 – 2009-07-24 05:14:29

+2

为了将来的参考,这类问题更适合ServerFault.com,它是Stack Overflow的姊妹站点。 – 2009-07-24 05:36:17

回答

0

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

我的phpinfo页有这样的块:

 
PDO 
PDO support enabled 
PDO drivers  mysql 

要仔细检查,看看你MAMP安装有提供所有需要的库文件。

+0

遗憾错过了行: 从phpinfo()函数PDO驱动程序为MySQL,客户端库版本\t 5.0.41 – 2009-07-24 03:02:11

+0

,我会怎么检查,看看是否有所有需要的库?我在哪里看,我会寻找什么? – 2009-07-24 03:04:34

相关问题