MS Access — доступ к MDB-файлу с помощью PHP на компьютере CentOS

Я пытаюсь получить доступ к файлу MDB с помощью PHP на компьютере с CentOS, предпочтительно с использованием PDO. Я установил модули ODBC и pdo_odbc в PHP и перезапустил веб-сервер (Apache). Я также установил mdbtools и unixODBC.

print_r(PDO::getAvailableDrivers());

Показывает:

Array
(
[0] => mysql
[1] => odbc
[2] => pgsql
[3] => sqlite
)

Я пытаюсь получить доступ к файлу DBA (который сохраняется локально) с помощью этого кода:

try
{
$driver = "/usr/lib64/libmdbodbc.so.0";
$dbName = "/PATH/FILE.MDB";
if (!file_exists($dbName)) {
die("Could not find database file.");
}
$db = new PDO("odbc:DRIVER=$driver; DBQ=$dbName; Uid=; Pwd=;");

$sql  = "SHOW TABLES";

$result = $db->query($sql);
$row = $result->fetch();

var_dump($row);

}
catch(Exception $e)
{
echo "\n\nEXCEPTION: $e\n\n";
}

И это выводит:

EXCEPTION: exception 'PDOException' with message 'SQLSTATE[IM002] SQLDriverConnect: 0 [unixODBC][Driver Manager]Data source name not found, and no default driver specified' in /PATH/odbctest.php:14
Stack trace:
#0 /PATH/odbctest.php(14): PDO->__construct('odbc:DRIVER=/us...')
#1 {main}

Что мне нужно изменить? Что я должен использовать в качестве имени драйвера? Я искал повсюду, и все, что я нашел, — это много действительно старых вещей эпохи 2004 года, но многие ссылки исчезли за эти годы. Это наиболее актуальный вопрос StackOverflow, но он не содержит кода: PDO Microsoft Access. Мне действительно нужно только прочитать из файла.

РЕДАКТИРОВАТЬ:

С некоторой переделкой кажется, что теперь я, по крайней мере, доволен PDO драйвером, исправив файл odbcinst.ini, который теперь содержит следующее:

[MDBTools]
Description = MDBTools Driver
Driver64    = /usr/lib64/libmdbodbc.so.0
Setup       = /usr/lib64/libmdbodbc.so.0
FileUsage   = 1
UsageCount  = 1

К сожалению, я все еще получаю ошибку:

exception 'PDOException' with message 'SQLSTATE[08001] SQLDriverConnect: 1 [unixODBC]Could not find DSN in connect string' in /PATH/odbctest.php:15
Stack trace:
#0 /PATH/odbctest.php(15): PDO->__construct('odbc:Driver=MDB...')
#1 {main}

Я делаю вызов PDO следующим образом:

$driver = "MDBTools";
$dbName = "/PATH/DATABASE.MDB";
$db = new PDO("odbc:Driver=$driver; DBQ=$dbName; Uid=; Pwd=;");

Я попытался добавить источник данных в файл odbc.ini, хотя я не могу сделать это в рабочей версии и все еще получаю ту же ошибку. Я нашел это, что интересно: DSN-соединение с PHP ODBC с использованием драйвера MDBTools. Какие-либо предложения?

1

Решение

$driver = "MDBTools";
$dbName = "/PATH/DATABASE.MDB";
$db = new PDO("odbc:Driver=$driver;DBQ=$dbName", "", "");
0

Другие решения

Других решений пока нет …

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