Использование PHP для запроса файла MDB и возврата JSON
У меня есть база данных Microsoft Access, и я пытаюсь запросить таблицу с помощью PHP и вывести действительный JSON. У меня есть эквивалентный код для базы данных MSSQL, я пытаюсь заставить мой код делать то же самое, но только для базы данных Access.
Вот код MSSQL
$myServer = "server";
$myDB = "db";
$conn = sqlsrv_connect ($myServer, array('Database'=>$myDB));
$sql = "SELECT *
FROM db.dbo.table";
$data = sqlsrv_query ($conn, $sql);
$result = array();
do {
while ($row = sqlsrv_fetch_array ($data, SQLSRV_FETCH_ASSOC)) {
$result[] = $row;
}
} while (sqlsrv_next_result($data));
$json = json_encode ($result);
sqlsrv_free_stmt ($data);
sqlsrv_close ($conn);
Вот что я пробовал для файла MDB
$dbName = "/filename.mdb";
if (!file_exists($dbName)) {
die("Could not find database file.");
}
$db = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$dbName", $user, $password);
$sql = "SELECT *
FROM cemetery";
$data = $db->query($sql); // I'm getting an error here
$result = array();
// Not sure what do do for this part...
do {
while ($row = fetch($data, SQLSRV_FETCH_ASSOC)) {
$result[] = $row;
}
} while (sqlsrv_next_result($data));
$json = json_encode ($result);
Я вроде следовал за этим, чтобы попытаться соединиться с базой данных:http://phpmaster.com/using-an-access-database-with-php/
В настоящее время это дает мне 500 внутренних ошибок сервера. Я ожидаю, что такая строка будет сохранена в переменной$json
[
{
"col1":"col value",
"col2":"col value",
"col3":"col value",
},
{
"col1":"col value",
"col2":"col value",
"col3":"col value",
},
{
etc...
}
]
Может ли кто-нибудь помочь мне перенести код MSSQL, который у меня есть выше, чтобы я мог использовать его с базой данных MDB? Спасибо за помощь!
РЕДАКТИРОВАТЬ: я закомментирую строки по одной, и это выдает мне 500 ошибок в строке$data = $db->query($sql);
, Я посмотрел в журнале ошибок, и я получаю сообщение об ошибкеCall to a member function query() on a non-object
, У меня уже есть линияextension=php_pdo_odbc.dll
без комментариев в моем файле php.ini. Кто-нибудь знает, в чем может быть проблема?