sql >> Database >  >> RDS >> Mysql

Foreach-lus met string om XML uit te voeren

foreach kan elke array of elk object herhalen dat traversable implementeert. Het resultaat van PDOStatement::fetch() is het record/de rij. Geef gewoon de verklaring aan foreach.

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

De betere API voor dergelijke dumps is XMLWriter . Het schrijft het resultaat rechtstreeks naar een stream, zonder eerst het hele document in het geheugen op te slaan. Het gebruik van een XML-API zorgt ook voor ontsnapping als dat nodig is. Hier is een klein voorbeeld:

$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();

Uitgang:

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

In DOM maak, voeg je toe en configureer je nodes. Hier is een klein voorbeeld:https://stackoverflow.com/a/21760903/2265374




  1. Bepaalde gebruikers beperken tot alleen hun gegevens in een gemeenschappelijke tabel

  2. Interne SQL Server:problematische operators Pt. Ik – Scans

  3. SQL Server Failover Cluster Installatie -3

  4. Hoe een MySQL-database te synchroniseren tussen twee externe databases (zonder MySQL-databasereplicatietechniek)