Я пытаюсь получить доступ к ODBC-соединению в PHP через PDO_ODBC. Это мой код:
$db = new PDO('odbc:MyDSN', '', '');
И я получаю эту ошибку:
SQLSTATE [IM002] SQLConnect: 0 [Microsoft] [диспетчер драйверов ODBC] Имя источника данных не найдено и указанный драйвер по умолчанию не указан
Я знаю, что DSN работает, потому что я могу использовать его в Python с pyodbc. Тип – User DSN – нужно ли быть системным DSN? Я не указываю драйвер, потому что понял, что ODBC отвлекает это, но, может быть, мне нужно? Базовая БД – это Oracle, если это помогает.
Спасибо!
На самом деле есть два отдельных приложения Microsoft ODBC Administrator, один для 32-разрядных и один для 64.
Как объясняет статья в KB:
32-разрядная версия файла Odbcad32.exe находится в папке% systemdrive% \ Windows \ SysWoW64.
64-разрядная версия файла Odbcad32.exe находится в папке% systemdrive% \ Windows \ System32.
Нет, не опечатка – 32-разрядная версия находится в папке SysWoW64
а 64-разрядная – в папке System32
. (Ий)
Я запускал 64-битный веб-сервер, который проверял 64-битную ODBC-библиотеку для DSN, тогда как у меня это было в 32-битном. Понижение сервера сделало трюк.