- версии PHP: 7.0.14
- Работа на Windows Server 2012
- Файлы базы данных находятся в D: диск
- Сайт/Application присваивается Заявке бассейн правильно
- Assigned пула приложений имеет права доступа к D: привод
Попытка подключения и извлечения информации из базы данных ToppSpeed.ISAM Таблица не найдена, SQL состояния S0000 в SQLExecDirect
Созданный DSN правильно с использованием драйвера TopSpeed ODBC.
Я создал образец сценария, чтобы проверить, работает он или нет.
odbctest.php
$conn=odbc_connect("DSN_NAME",'',''); //Make a coonection to DSN
if (!$conn){
exit("Connection Failed: " . $conn);
}
$sql="SELECT * FROM ExampleTableName"; // Query String
$rs=odbc_exec($conn,$sql); //Execute Query <--- Error Line
if (!$rs) {
exit("Error in SQL");
}
while (odbc_fetch_row($rs)){
var_dump(odbc_result($rs,1));
}
odbc_close($conn);
Ошибка:
PHP Warning: odbc_exec(): SQL error: [SoftVelocity Inc.][TopSpeed ODBC Driver][ISAM]ISAM Table Not Found, SQL state S0000 in SQLExecDirect in C:\inetpub\wwwroot\projectFolder\odbctest.php on line 9
Рабочая: Когда я запускаю тот же файл на встроенном сервере PHP с помощью команды
> php -S localhost:8002
и файл запуска в браузер наhttp://localhost:8002/odbctest.php
Все работает отлично.Работа: Когда я запускаю файл в командной строке
> php odbctest.php
Он отлично работает. Я получил данные из таблицы.не работает: я добавил сайт в диспетчере IIS, связать веб-сайт (физический путь
C:\inetpub\wwwroot\projectFolder
) с локальным IP
Когда я открываю, чтоodbctest.php
в браузере с локальным IP я получаюTable NOT Found error.
Same Script, только различие заключается в том, что он работает в командной строке, а не на сервере IIS, он работает на встроенном сервере PHP и не работает в IIS.
другой техническая Разница
Я поставил один PHP файл, чтобы увидеть PHP информации на обоих серверах. Вот единственная разница, которую я нашел в этом.
- встроенный сервер, работающий на PHP: В PHP Информация API Сервер: Встроенный HTTP-сервер
- Не работает на сервере IIS: в PHP Информация сервера АФИ: CGI/FastCGI
не возникает в строке DSN, потому что, когда я меняю строку DSN с неизвестным, она указывает, что в строке DSN что-то не так.
Я думаю, что при попытке доступа к данным с сервера IIS может возникнуть некоторая проблема (PHP работает на CGI/FastCGI).
Мне интересно, есть ли проблема с разрешением, почему ошибка говорит, что таблица не найдена !!
Не найдена хорошая документация для ошибки подключения к базе данных TopSpeed, так как эта база данных широко не используется.
Любое предложение или идея? Пожалуйста, порекомендуйте. Заранее спасибо.