找不到Fedora PDO驱动程序

时间:2014-12-09 14:38:56

标签: php pdo fedora

这真的是我现在的错误,所有q& a我读过的都不解决我的问题。我已经在php手册中读到,从PHP 5.1.0开始默认启用PDO"驱动程序。"我有php 5.5.18。

php_info()显示:

PDO Driver for MySQL    enabled

我正在使用fedora,并且:

yum install php-pdo

GIVS:

php-pdo-5.5.19-3.fc20.x86_64 already installed and latest version

一些代码

$dsn = '
mysql:host=' . MY_HOST . '
;dbname=' . MY_DB . '
;charset=utf8;"';
$user = MY_USER;
$password = MY_PASS;


    try {
        $this->_dbh = new PDO($dsn, $user, $password);
        $this->_dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
    catch (PDOException $e) {
        echo 'Connection failed: ' . $e->getMessage();
    }

这让我感激不尽:

Connection failed: could not find driver

2 个答案:

答案 0 :(得分:0)

你重启了网络服务器吗?

发出

yum install php-pdo

它给出了

php-pdo-5.5.19-3.fc20.x86_64 already installed and latest version

这很好,花花公子,但你需要发出:

  

sudo service httpd stop / start或restart或sudo /etc/init.d/httpd stop / start restart

将扩展程序加载到apache webserver,否则无论你做什么,它都无法工作。驱动程序已启用但您需要重新启动Web服务器才能加载扩展程序!

答案 1 :(得分:0)

我的DSN字符串中有换行符,我认为这就是问题所在。

我已将其更改为:

    $host = MY_HOST;
    $db = MY_DB;
    $user = MY_USER;
    $password = MY_PASS;

    try {
        $this->_dbh = new PDO(
            "mysql:host=$host;dbname=$db;charset=utf8;", 
            $user, 
            $password
            );
    } catch (PDOException $e) {
        printf(
            'Connection failed: %s<br>',
            $e->getMessage()
        );
    }