sql >> Databáze >  >> RDS >> Mysql

Foreach smyčka pomocí řetězce pro výstup XML

foreach může iterovat jakékoli pole nebo objekt, který implementuje traversable. Výsledek PDOStatement::fetch() je záznam/řádek. Stačí poskytnout prohlášení foreachovi.

foreach($statement as $row) { ...   

Lepší API pro podobné výpisy je XMLWriter . Výsledek zapíše přímo do streamu, aniž by nejprve uložil celý dokument do paměti. Použití XML API se také postará o escapování podle potřeby. Zde je malý příklad:

$statement = [
  [ 'name' => 'one', 'location' => '...', /* ... */],
  [ 'name' => 'two', 'location' => '...', /* ... */]
];

$xmlWriter = new XMLWriter();
$xmlWriter->openUri('php://stdout');

$xmlWriter->startDocument();
$xmlWriter->setIndent(2);
$xmlWriter->startElement('markers');
foreach ($statement as $row) {
  $xmlWriter->startElement('marker');
  $xmlWriter->writeAttribute('name', $row['name']);
  /* other attributes ... */
  $xmlWriter->endElement();
}
$xmlWriter->endElement();
$xmlWriter->endDocument();

Výstup:

<?xml version="1.0"?>
<markers>
 <marker name="one"/>
 <marker name="two"/>
</markers>

V DOM vytváříte, připojujete a konfigurujete uzly. Zde je malý příklad:https://stackoverflow.com/a/21760903/2265374




  1. předávání id jména při kliknutí pomocí ajax do php

  2. Požadavek selhal nebo služba neodpověděla včas?

  3. je MySql dobrý pro velké databáze?

  4. Je možné vložit nový řádek na začátek tabulky MySQL?