Драйвер Fedora PDO не найден

Это действительно глючит меня сейчас, все д&Я прочитал не исправить мою проблему. Я прочитал в руководстве php, что PDO «драйвер включен по умолчанию в PHP 5.1.0». У меня есть php 5.5.18.

php_info () показывает:

PDO Driver for MySQL    enabled

Я использую Fedora, и:

yum install php-pdo

ГВСИ:

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

1

Решение

Вы перезапустили веб-сервер?

когда вы выпускаете

yum install php-pdo

и это дает

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

это хорошо и модно, но вам нужно выдать:

служба sudo httpd остановка / запуск или перезапуск или sudo /etc/init.d/httpd остановка / запуск перезапуск

загрузить расширение на веб-сервер apache, в противном случае, независимо от того, что вы делаете с ним, оно не будет работать. драйвер включен, но вам нужно выполнить перезагрузку веб-сервера, чтобы загрузить расширение!

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

По вопросам рекламы [email protected]