Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 581

/ вопрос открыт /

Здравствуйте, эксперты!
Есть база данных MYSQL на хостинге и есть клиент написан на Дельфи7.
Подскажите примерный текст php скрипта для подключения клиента к БД не напрямую, а через этот скрипт посредник.
И как вызвать этот скрипт из Дельфи7 без компоненты браузера.

Приложение:
  1. DELPHI7


Shadow Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Shadow (статус: Посетитель)
Вопрос отправлен: 14 сентября 2010, 21:51
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: DNK

Здравствуйте, Shadow!
Видится следующая схема:
1) Делается запрос серверу с помощью IdHTTP (Indy Clients)
2) PHP на сервере делает запрос в БД, но вместо html-страницы формирует xml
3) Данные полученные с помощью IdHTTP парсятся например с помощью XMLDocument (Internet)

PHP-скрипт:

<data>
<?php
  define(DB_USER, 'user');
  define(DB_PASSWORD, 'pass');
  define(DB_HOST, 'localhost');
  define(DB_NAME, 'mydb');
  define(DB_QUERY, 'SELECT * FROM mytable');
 
  $db_connection = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
  mysql_select_db(DB_NAME);
 
  $query_result = mysql_query(DB_QUERY) or die(mysql_error());
  while ($row = mysql_fetch_array($query_result, MYSQL_ASSOC)) {
  ?>
  <row>
    <?php
    foreach ($row as $key => $value) {
        echo("<$key>$value</$key>\n");
    }
    ?>
  </row>
    <?php
  }
 
  mysql_free_result($query_result);
  mysql_close();
 
?>
</data>

Xml получаем следующим образом:

var i: integer;
begin
  XMLDocument1.XML.Text := IdHTTP1.Get('http://mysite.net/');
  with XMLDocument1.Node.Collection do
    for i := 0 to Count - 1 do
      with Nodes[i] do begin
        // обрабатываем элемент базы
      end;
end;

ЗЫ: Не проверял

Приложение:
  1. <data>
  2. <item>
  3. <fild1>item1-value1</fild1>
  4. <fild2>item1-value2</fild2>
  5. <fild3>item1-value3</fild3>
  6. </item>
  7. <item>
  8. <fild1>item2-value1</fild1>
  9. <fild2>item2-value2</fild2>
  10. <fild3>item2-value3</fild3>
  11. </item>
  12. </data>


Ответ отправил: DNK (статус: Студент)
Время отправки: 15 сентября 2010, 13:03
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 1; последнее сообщение — 14 сентября 2010, 22:10; участников в обсуждении: 1.
Shadow

Shadow (статус: Посетитель), 14 сентября 2010, 22:10 [#1]:

Здравствуйте, эксперты!
Есть база данных MYSQL на хостинге и есть клиент написан на Дельфи7.
Подскажите примерный текст php скрипта для подключения клиента к БД не напрямую, а через этот скрипт посредник.
И как вызвать этот скрипт из Дельфи7 без компоненты браузера.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:37
Выполнено за 0.05 сек.