Цель: научить зверюгу Пыха читать данные БД хитрого лиса ...
Дано:
- OS Window Server 2003 с многочисленными обновлениями, увы, под юниксами решения пока не нашел =(
- Apache and etc. (all this not necessarily)
- Базы даных FoxPro, то бишь файлы *.dbf и *.cdx и
- PHP 5.3.5 (хотя версия принципиальной разницы не играет)
Решение:
Ничего необычного и особенного но полазить по гуглу пришлось ...
1) качаем оле драйверVFPOLEDBSetup.msi: "Microsoft OLE DB Provider for Visual FoxPro"
2) ставим его в ситему, где крутится пых
3) пишем скрипт testconnect.php :
# Обращаю внимание, путь указан сетевой, оле-драйвер съедает это нормально без излишних шаманств ... $path="//remotedb/foxprog/dbf"; # пытаемся приконектится ... try { $conn = new COM("ADODB.Connection"); $conn->Open("Provider=vfpoledb.1;Data Source=".$path.";Collating Sequence=Machine"); } catch (Exception $e) { echo $e->getMessage(); exit; # по своему усмотрению } #выполняем какой то запрос try { $res = $conn->Execute("SELECT * FROM mytable"); } catch (Exception $e) { echo $e->getMessage(); exit; } #получаем количество и массив полей запроса $cntFields = $res->Fields->Count(); $arrFields=array(); for ($i=0; $i < $cntFields; $i++) { $arrFields[$i] = $res->Fields($i); } #получаем данные ... $rows = array(); while (!$res->EOF) { $arr=array(); for ($i=0; $i < $cntFields; $i++) { $arr[$arrFields[$i]->name] = $arrFields[$i]->value; } $rows[] = $arr; $res->MoveNext(); } #наш массивчик данных var_dump($rows);
enjoy =)
Спасибо за пример. Удачи!
ОтветитьУдалитьgalaxy watch 3 titanium - Titanium Art - TITanium Art
ОтветитьУдалитьStar Wars Galaxy Watch titanium flash mica 3 titanium · Star Wars galaxy watch 3 titanium black titanium rings · titanium welding Star Wars titanium lug nuts galaxy watch 3 titanium. Star Wars galaxy watch 3 titanium · Star Wars galaxy watch 3 dental implants