Я пытаюсь подключить php-сервер к базе данных ms access и все перепробовал, но не могу подключиться.
Вот мой код
<?php
$conn=odbc_connect('testdb','','');
//$conn=odbc_connect("odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\wamp\www\test\testdb.accdb", '', '');
if (!$conn) {
exit("Connection Failed: " . $conn);
}
$sql="SELECT * FROM testdb";
$rs[]=odbc_exec($conn,$sql);
if (!$rs) {
exit("Error in SQL");
}
while (odbc_fetch_row($rs)) //<-------line 14
{
$json_output[] = odbc_result($rs, "test");
print(json_encode($json_output));
}
odbc_close($conn);
?>
Если я использую
$conn=odbc_connect('testdb','','');
тогда я получаю следующую ошибку
Warning: odbc_fetch_row() expects parameter 1 to be resource, array given in C:\wamp\www\test\new 1.php on line 14
если я использую
$conn=odbc_connect("odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\wamp\www\test\testdb.accdb", '', '');
тогда я получаю ниже строки как ошибку.
Warning: odbc_connect(): SQL error: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified, SQL state IM002 in SQLConnect in C:\wamp\www\test\new 1.php on line 3
Я отредактировал мой файл php.ini, чтобы включить расширение odbc
;extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
extension=php_pdo_odbc.dll <--- here
;extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
Также я скачал и установил Microsoft Access Database Engine 2010, распространяемый из эта ссылка.
Также я попробовал все, что показано в этом видео.
Я также сделал именно то, что написано в принятом ответе по этой ссылке и я использую 64-битную версию WampServer 2.4 на 64-битной Windows 7, а также у меня 64-битный офис Microsoft.
Извините за мой плохой английский, и я новичок в php и подключении к MS Access. Я сделал подключение к MySQL, но никогда не получить доступ.
Тестирование подтвердило, что, несмотря на установленную 64-разрядную версию WampServer, PHP работал как 32-разрядный процесс. Более старый драйвер Jet для ODBC (Driver={Microsoft Access Driver (*.mdb)}
) может успешно прочитать файл .mdb и 64-разрядная версия Jet отсутствует, поэтому PHP должен работать как 32-разрядный.
Теперь, когда установлен 64-битный Office, проблема заключается в том, что 32-битному PHP потребуется 32-битная версия более нового драйвера Access Database Engine (ACE), чтобы манипулировать файлом .accdb, но Microsoft не поддерживает 32-разрядные и 64-разрядные версии ACE на одном компьютере. (Веб-поиск покажет, что есть способ заставить это произойти, но это не рекомендуется, потому что это может повредить Office.)
Итак, окончательное разрешение будет одним из следующих:
Других решений пока нет …