PDO不支持CakePHP安装

时间:2013-04-07 01:13:18

标签: php cakephp pdo mamp

我正在配置cakePHP应用程序,但该应用似乎没有成功连接到数据库,我收到以下错误:

Cake is NOT able to connect to the database.

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

我将database.php.default重命名为database.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驱动程序连接到DB,所以我试图运行一个单独的文件来测试PDO是否为false:

<?php

var_dump( extension_loaded('pdo_mysql') );

?> 

这是假的:

bool(false) 

我尝试在php.ini文件中启用PDO:

extension=php_pdo_mysql.so

重新启动MAMP,但cakePHP应用程序的错误仍然相同。我错过了什么吗?如何确保在您的情况下启用PDO?提前完成。

编辑:

运行phpinfo()时,PDO_MySQL未启用: enter image description here

根据phpinfo()输出,php.ini路径是以下路径:

/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();
}

我总是出现以下错误:

Error !: could not find driver

因此未加载PDO_Mysql驱动程序,并且从phpinfo()输出中可以清楚地看到。出来解决这个问题?

1 个答案:

答案 0 :(得分:0)

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