Я хотел бы знать, есть ли у вас некоторые идеи/предложения об использовании dbase в PHP.Как оптимизировать исследование .dbf-файлов с помощью dbase в PHP?
Вот моя проблема, мне нужно «перевести» скрипт Foxpro в PHP, и я использую dbase, так как мне приходится иметь дело с файлами .DBF. Проблема заключается в времени, которое требуется для выполнения PHP скрипта, потому что я не нашел лучшего способа перевода выбранных запросов, чем повторение всего файла, чтобы выбрать нужные мне данные ...
И, очевидно, Я дошел до того, что для PHP-скрипта пользователю требуется слишком много времени. Я знаю, что могу предоставить серверу больше времени для выполнения PHP, изменив файл php.ini и т. Д., Но это не решение, так как этот скрипт позже будет доступен почти каждому пользователю сайта, который я разрабатываю, поэтому, если он может идти как можно быстрее, чтобы сделать это действительно здорово ...
Итак, что можно сделать, чтобы ускорить время выполнения с PHP на .dbf-файлах? Как бы вы перевели запросы SELECT Foxpro в PHP? Вы рекомендуете мне сделать этот скрипт на другом языке, кроме PHP?
я дам вам пример того, что я должен перевести, это лишь малая часть того, что я должен перевести, и .dbf файлы, содержащие по меньшей мере 50 000 строк, по меньшей мере, 10 столбцов каждая:/
FUNCTION
PARAMETERS n_pc_id, l_pc_euro, n_sf_id, l_contrat
PRIVATE tb_res, mwhere
DIMENSION tb_res[1]
STORE 0 TO tb_res
IF n_sf_id = 0
IF l_contrat
mwhere = "lig_mo.lo_gar = 'T' AND mo.mo_sf_id != m.pa_sfd_id"
ELSE
mwhere = "lig_mo.lo_gar != 'T' AND mo.mo_sf_id != m.pa_sfd_id"
ENDIF
ELSE
IF l_contrat
mwhere = "lig_mo.lo_gar = 'T' AND mo.mo_sf_id = n_sf_id"
ELSE
mwhere = "lig_mo.lo_gar != 'T' AND mo.mo_sf_id = n_sf_id"
ENDIF
ENDIF
SELECT SUM(lig_mo.lo_qte);
FROM mo, lig_mo;
WHERE mo.mo_id = lig_mo.lo_mo_id;
AND (lig_mo.lo_pc_id = n_pc_id;
AND &mwhere;
AND lig_mo.lo_mo_id != 99999999);
AND lig_mo.lo_type IN ('F','V','B');
INTO ARRAY tb_res
RETURN tb_res[1]
Спасибо за ваш ответ, но решение, которое вы дали, похоже, подразумевает, что я могу напрямую подключиться к базе данных, и я не могу этого сделать, по крайней мере пока. Так что я просто увижу решение, и если я смогу напрямую подключиться к базе данных, я обязательно буду использовать ODBC или PDO_ODBC с ODBC Manager – Blomsberry