PHP Classes
elePHPant
Icontem

File: class.mysql_xml.phtml

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Ricardo Costa  >  MySQL to XML - XML to MySQL  >  class.mysql_xml.phtml  >  Download  
File: class.mysql_xml.phtml
Role: Class source
Content type: text/plain
Description: Insert XML in MySQL and transform MySQL in XML using XMLFile class
Class: MySQL to XML - XML to MySQL
Insert XML in MySQL and export MySQL to XML
Author: By
Last change:
Date: 12 years ago
Size: 2,457 bytes
 

Contents

Class file image Download
<?php
//
// Por Ricardo Costa - ricardo.community@globo.com - 2002
// Classe conversão de query MySQL em XML
// Requer as classes recordSet e XMLFile
//
// mysql2xml
// +---- recordSet // Instancia de recordSet
// +---- xml // Instancia de XMLFile
// +---- mysql2xml() // Inicia as Instancias de recordset e XMLFile
// +---- convertToXML( Seltença SQL, Nome do Arquivo )
// +---- insertIntoMySQL( Nome do Arquivo, Nome da Tabela) {
//
//

require("class.recordset.phtml");
require(
"class.xml.phtml");



class
mysql2xml {

   var
$recordSet;
   var
$xml;

  
# Inicializa criando os membros
  
function mysql2xml() {
     
$this->recordSet = new recordSet();
     
$this->xml = new XMLFile();
     
   }
  
# Inicializa criando os membros

  
  
   # Convert a query em XML
  
function convertToXML($sql, $filename) {
     
$result = $this->recordSet->select($sql);
     
     
$this->xml->create_root();
     
$this->xml->roottag->name = "table";
  
      while (
$list_result = $this->recordSet->setRow($result)) {

     
$this->xml->roottag->add_subtag("ROW", array());
     
$tag = &$this->xml->roottag->curtag;
           
         for (
$i = 0; $i <= $this->recordSet->fieldsCount($result)- 1; $i++){
              
$tag->add_subtag($this->recordSet->getFieldName($result, $i), array());
           
$tag->curtag->cdata = $list_result[$i];
         }
      }
   
     
$xml_file = fopen($filename, "w" );
     
$this->xml->write_file_handle( $xml_file );
   }
  
# Convert a query em XML

  
  
   # Inseri XML em tabela
  
function insertIntoMySQL($filename, $tablename) {
     
$xml_file = fopen($filename, "r");
     
$this->xml->read_file_handle($xml_file);
         
     
$numRows = $this->xml->roottag->num_subtags();
     
      for (
$i = 0; $i < $numRows; $i++) {
          
$arrFields = null;
          
$arrValues = null;

          
$row = $this->xml->roottag->tags[$i];
          
$numFields = $row->num_subtags();

           for (
$ii = 0; $ii < $numFields; $ii++) {
              
$field = $row->tags[$ii];
             
$arrFields[] = $field->name;
             
$arrValues[] = "\"".$field->cdata."\"";
           }

          
$fields = join($arrFields, ", ");
          
$values = join($arrValues, ", ");

          
$this->recordSet->exec("Insert Into $tablename ($fields) Values ($values)");
      }
   }
  
# Inseri XML em tabela


} # Final da Classe
?>