2015-01-27 2 views
1

Добрый день. Мне действительно нужна помощь.Соединение базы данных Foxpro в PHP по пути UNC

Мне нужно получить доступ к таблице 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(); 

спасибо!

ответ

0

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

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

+0

Спасибо Маркус. Да, это в окнах. И я использую XAMPP. Используется ли IUSR в IIS? Кроме того, я не могу получить доступ к настройкам общего доступа к компьютеру, к которому я обращаюсь. У меня нет прав. – user3060463

+0

IUSR создается при установке IIS. Вы можете переключиться на любого другого пользователя в консоли управления IIS. Найдите там вариант авторизации. В свойствах вы можете настроить, какие пользователи Windows использовать, при обращении к странице анонимно. Выберите пользователя, у которого есть доступ на чтение/запись. Чтобы прочитать функцию олицетворения IIS, вы можете взглянуть на веб-сайт IIS. Там есть хорошая документация –

0

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

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

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

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

@ user3060463 ... Олег прав. Ключевым моментом является подключение к PATH WHERE, где находятся файлы базы данных, а не конкретный .dbf, который вы пытаетесь запросить. Затем вы можете выбрать любую таблицу в этом пути (или подпуть, если такая структурированная) – DRapp

Смежные вопросы