DB2. Итерация по строкам для создания файла XML

1

Я следую этому руководству для добавления маркеров к определенным адресам из моей базы данных DB2 на карты google: https://developers.google.com/maps/articles/phpsqlajax_v3 Я в той части, где я пытаюсь создать XML-документ из моего База данных DB2 и немного запуталась. Это код, который Google написал для итерации через строки и создания XML-документа из него:

// Iterate through the rows, adding XML nodes for each

while ($row = @mysql_fetch_assoc($result)){
  // ADD TO XML DOCUMENT NODE
  $node = $dom->createElement("marker");
  $newnode = $parnode->appendChild($node);
  $newnode->setAttribute("name",$row['name']);
  $newnode->setAttribute("address", $row['address']);
  $newnode->setAttribute("lat", $row['lat']);
  $newnode->setAttribute("lng", $row['lng']);
  $newnode->setAttribute("type", $row['type']);
}

Что было бы эквивалентным способом сделать это в DB2 с использованием PHP?

  • 0
    Я думаю, это будет точно так же, за исключением того, что вы замените mysql_fetch_assoc() на db2_fetch_assoc() , нет?
  • 0
    Я попытался это, и я получаю сообщение об ошибке, что «имя» не является допустимым индексом. То же самое для всех других атрибутов.
Показать ещё 1 комментарий
Теги:
db2

1 ответ

0
Лучший ответ

Вам нужно будет использовать соответствующий PHP API DB2, который может включать включение расширения в файле php ini и, возможно, установку драйвера ODBC DB2:

Ниже приведен рабочий пример с использованием метода PDO Driver с try/catch в соединении. Кроме того, вы можете использовать DSN (см. Руководства выше):

# Opening db connection
try {
    $conn = db2_connect($database, $user, $password);   

    $sql = "SELECT * FROM tablename";
    $stmt = db2_prepare($conn, $sql);
    $result = db2_execute($stmt);
}

catch(PDOException $e) {  
    echo $e->getMessage();
    exit;
}

while($row = db2_fetch_assoc($stmt)) {  
  // ADD TO XML DOCUMENT NODE
  $node = $dom->createElement("marker");
  $newnode = $parnode->appendChild($node);
  $newnode->setAttribute("name",$row['name']);
  $newnode->setAttribute("address", $row['address']);
  $newnode->setAttribute("lat", $row['lat']);
  $newnode->setAttribute("lng", $row['lng']);
  $newnode->setAttribute("type", $row['type']);
}

# Closing db connection
db2_close($conn);
  • 0
    Привет @parfait, мне было интересно, если это можно сделать без драйверов PDO. Я имею в виду, я могу успешно подключить свою базу данных. Я использую метод db2_connect для подключения и db2_prepare и db2_execute.
  • 0
    Тогда в чем проблема? Простой выбор из вашего выполненного запроса, заменяющий mysql_fetch_assoc . Используйте db2_fetch_assoc . Смотрите редактировать.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню