2013-04-07 97 views
1

我配置CakePHP的应用,但应用程序似乎并不成功连接到数据库,我得到了以下错误:PDO不与CakePHP安装工作

Cake is NOT able to connect to the database. 

Database connection "Mysql" is missing, or could not be created. 

我改名database.php.defaultdatabase.php和这里是代码:

class DATABASE_CONFIG { 

    public $default = array(
     'datasource' => 'Database/Mysql', 
     'persistent' => false, 
     'host' => 'localhost:8889', 
     'login' => 'root', 
     'password' => 'root', 
     'database' => 'cakephpdb', 
     'prefix' => '', 
     'encoding' => 'utf8', 
    ); 
} 

其实,我知道的CakePHP使用PDO驱动程序连接到数据库,所以我试图运行一个单独的文件只是为了测试PDO是否是假真:

<?php 

var_dump(extension_loaded('pdo_mysql')); 

?> 

而且它是假的:

bool(false) 

我试图使PDO在php.ini文件:

extension=php_pdo_mysql.so 

重启动甲基苯丙胺,但仍然CakePHP的应用程序相同的错误。我错过了什么吗?您如何确保您的案例中启用了PDO?提前Thanx。

编辑:

在运行时phpinfo()函数,未启用PDO_MYSQL: enter image description here

在php.ini路径是follwoing,根据phpinfo()函数的输出:

/Applications/MAMP/bin/php/php5.4.10/conf 

enter image description here

所以,我想在那个路径编辑php.ini文件,这里是相关设置:

extension=imap.so 
    extension=yaz.so 
    extension=mcrypt.so 
    extension=gettext.so 
    extension=pgsql.so 
    extension=pdo_pgsql.so 
    extension=pdo_mysql.so 

pdo_mysql.default_socket=/tmp/mysql.sock 

mysql.default_socket = /tmp/mysql.sock 

而且,我试图测试在PHP脚本数据库连接:

try { 
    $dbh = new PDO('mysql:host=localhost;dbname=db_name', 'localhost', 'root'); 
    echo '<br /> success'; 
} catch (PDOException $e) { 
    print "Error !: " . $e->getMessage() . "<br/>"; 


    die(); 
} 

我GTO总是出现以下错误:

Error !: could not find driver 

所以PDO_Mysql驱动程序不加载,这是从phpinfo()函数输出清晰。解决这个问题?

+0

有很多关于CakePHP,MySQL,PDO等的问题/回答。你已经阅读过他们吗? – Dave 2013-04-07 06:56:17

+0

首先确保现在真正启用了Pdo - 在浏览器中检查phpinfo()的输出。接下来使用PDO和数据库设置编写一个简单的脚本(您可以从手册中获取复制/粘贴代码)。一旦确认设置正常并且PDO安装正确,它是否仍然不能与CakePHP一起使用? – herrjeh42 2013-04-07 14:37:50

+0

嗨,thanx回复,我编辑我的帖子,关于'php.ini'文件上我的实际配置设置的更多细节。我尝试了所有关于stackoverflow上类似线程的建议,但他们没有解决我的问题。 – Malloc 2013-04-07 20:27:55

回答

0

您是否确认要更新正确的php.ini?对于XAMPP,有一个用于控制台的php.ini,另一个用于Web服务器。您可能正在更新不正确的那个。