sql >> データベース >  >> RDS >> Mysql

文字列を使用してXMLを出力するForeachループ

    foreach トラバース可能を実装する任意の配列またはオブジェクトを反復できます。 PDOStatement::fetch()の結果 レコード/行です。 foreachにステートメントを提供するだけです。

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

    このようなダンプに適したAPIは、XMLWriter です。 。最初にドキュメント全体をメモリに保存せずに、結果をストリームに直接書き込みます。 XML APIを使用すると、必要に応じてエスケープも処理されます。小さな例を次に示します。

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

    出力:

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

    DOMでは、ノードを作成、追加、および構成します。小さな例を次に示します。 https://stackoverflow.com/a/21760903/2265374




    1. MySqlテーブルからの重複行の削除

    2. PHP MySQL LOADDATAINFILEヘルプ

    3. ORA-00997の回避策:LONGデータ型の不正使用

    4. JavaMySQL更新クエリ