我配置CakePHP的应用,但应用程序似乎并不成功连接到数据库,我得到了以下错误:PDO不与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驱动程序连接到数据库,所以我试图运行一个单独的文件只是为了测试PDO是否是假真:
<?php
var_dump(extension_loaded('pdo_mysql'));
?>
而且它是假的:
bool(false)
我试图使PDO在php.ini
文件:
extension=php_pdo_mysql.so
重启动甲基苯丙胺,但仍然CakePHP的应用程序相同的错误。我错过了什么吗?您如何确保您的案例中启用了PDO?提前Thanx。
编辑:
在运行时phpinfo()函数,未启用PDO_MYSQL:
在php.ini路径是follwoing,根据phpinfo()函数的输出:
/Applications/MAMP/bin/php/php5.4.10/conf
所以,我想在那个路径编辑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()函数输出清晰。解决这个问题?
有很多关于CakePHP,MySQL,PDO等的问题/回答。你已经阅读过他们吗? – Dave 2013-04-07 06:56:17
首先确保现在真正启用了Pdo - 在浏览器中检查phpinfo()的输出。接下来使用PDO和数据库设置编写一个简单的脚本(您可以从手册中获取复制/粘贴代码)。一旦确认设置正常并且PDO安装正确,它是否仍然不能与CakePHP一起使用? – herrjeh42 2013-04-07 14:37:50
嗨,thanx回复,我编辑我的帖子,关于'php.ini'文件上我的实际配置设置的更多细节。我尝试了所有关于stackoverflow上类似线程的建议,但他们没有解决我的问题。 – Malloc 2013-04-07 20:27:55