У меня есть PHP 5.5 на Windows 7 ampps. Я пытаюсь получить доступ к файлу базы данных MS Access с именем main.mdb
с использованием PHP. Я использую следующий код:PHP pdo ODBC и драйвер файла mdb
<?php
$dbName = "C:\\test\\main.mdb";
if (!file_exists($dbName)) {
die("Could not find database file.");
}
// The following is line 7
$db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)};charset=UTF-8; DBQ=$dbName; Uid=; Pwd=;");
//$db->exec("set names windows-1256");
$sql = "SELECT 0bok.*, `0cat`.name FROM 0bok INNER JOIN 0cat ON `0cat`.id = `0bok`.cat WHERE cat = 35 OR cat = 38 OR cat = 39 OR cat = 41 OR cat = 47 OR cat = 48 OR cat = 4 OR cat = 5 ORDER BY cat";
$result = $db->query($sql);
$row = $result->fetchAll();
$i = 1;
echo "<pre>";
foreach ($row as $book) {
echo $i . ": " . iconv("windows-1256", "utf-8", $book['bk']) . ", " . $book['bkid'] . " -> " . iconv("windows-1256", "utf-8", $book['name']) . "\n";
$i++;
}
Однако я получил следующее сообщение об ошибке:
Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in C:\some\path\di.php:7 Stack trace: #0 C:\some\path\di.php(7): PDO->__construct('odbc:DRIVER={Mi...') #1 {main} thrown in C:\some\path\di.php on line 7
Вопрос: Как мог я получил пропущенный водителя и сделать его работу с кодом что я рассмотрел выше?
Проверьте файл php.ini, чтобы увидеть, что строка 'extension = php_pdo_odbc.dll' закомментирована. Если это так, удалите ведущую точку с запятой и посмотрите, поможет ли это. –
@GordThompson Да, это так. Я обновил PHP.ini, и он отлично работает. Спасибо. – SaidbakR