Подключение базы данных Foxpro в PHP через UNC Path

Добрый день. Мне действительно нужна помощь

Мне нужно получить доступ к таблице foxpro в PHP.

Когда я получаю к нему доступ, используя локальный путь в качестве источника данных, он работает гладко.
Но когда я пытаюсь получить доступ к файлу базы данных на другом компьютере, он всегда запрашивает неверный путь при условии, что у меня есть доступ к компьютеру, и файлы открыты для общего доступа. Вот мой код:

$conn = new COM("ADODB.Connection");
$server='172.0.0.8\server';
$conn->Open_basedir('Provider=VFPOLEDB.1;Data Source=//172.0.0.8/server/sysprog/system/tempstk.dbf;Collating Sequence=MACHINE');
// SQL statement to build recordset.
$rs = $conn->Execute("SELECT * FROM tempstk");

echo "<p>List of couriers:</p><hr>";
// Display all the values in the records set
while (!$rs->EOF) {
$fv = $rs->Fields("Prodcode");
echo $fv->value."<br>\n";
$rs->MoveNext();
}
$rs->Close();

Спасибо!

1

Решение

Я предполагаю, что веб-сервер и файловый сервер являются окнами? Если вы используете анонимную авторизацию в Internet Information Server, запрос исполняет роль пользователя Windows. В стандартной конфигурации это будет IUSR. Этот пользователь должен иметь доступ к общему ресурсу и иметь права на чтение / запись файла.

IUSR является локальным пользователем. Не входит в домен. Поэтому проверьте настройки безопасности общего ресурса и посмотрите, включен ли IUSR.

0

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

Похоже, что в вашей строке подключения есть ошибка.

  1. Попробуйте изменить IP-адрес на имя сервера.
  2. Заменить косую черту на обратную косую черту.
  3. Удалить имя файла DBF.

Вот пример, который я только что протестировал, и он отлично работает на моей стороне:

Provider=VFPOLEDB.1;Data Source=\\hostname\Shared Folders\somefolder\;Password="";Collating Sequence=MACHINE
0