pat_mysql2file.php
Upload User: feiyaoda
Upload Date: 2016-11-21
Package Size: 9556k
Code Size: 3k
Category:

WEB Mail

Development Platform:

PHP

  1. <?php
  2. function xmldumptable($table,$fp,$write_datas)
  3. {
  4.     // header
  5.     $content  = "<table>n";
  6.     $content .= " <definition>n";
  7.     $content .= "  <name>$table</name>n";
  8.     
  9.     $champs = mysql_query("SHOW FIELDS FROM $table");
  10.     
  11.             
  12.     while ($champ = mysql_fetch_array($champs))
  13.     {
  14.         var_dump($champ);
  15.         $fields[$champ[Field]]['type'] = $champ[Type];
  16.         $is_null = ($champ['Null'] != "YES") ? "NOT NULL" : "NULL";
  17.         $fields[$champ[Field]]['null'] = $is_null;
  18.         $fields[$champ[Field]]['default'] = $champ['Default'];
  19.         $content .= "   <field>n";
  20.         $content .= "    <field_name>$champ[Field]</field_name>n";
  21.         $content .= "    <field_type>$champ[Type]</field_name>n";
  22.         $content .= "    <field_null>$is_null</field_null>n";
  23.         $content .= "    <field_default>$champ[Default]</field_default>n"; 
  24.         $content .= "    <field_extra>$champ[Extra]</field_extra>n";
  25.         $content .= "   </field>n";
  26.     }
  27.         
  28.     @mysql_free_result($champs);
  29.         
  30.         
  31.     $keys = mysql_query("SHOW KEYS FROM $table");
  32.         
  33.     while ($key = mysql_fetch_array($keys))
  34.     {
  35.         //var_dump($key);
  36.         /*
  37.         $kname=$key['Key_name'];
  38.         if ($kname != "PRIMARY" and $key['Non_unique'] == 0)
  39.         {
  40.             $kname="UNIQUE|$kname";
  41.         }
  42.         if(!is_array($index[$kname]))
  43.         {
  44.             $index[$kname] = array();
  45.         }
  46.         $index[$kname][] = $key['Column_name'];
  47.         */
  48.         
  49.         $fields[$key['Key_name']]['primary'] = $key['Key_name'];
  50.         $fields[$key['Key_name']]['non_unique'] = $key['Non_unique'];
  51.     }
  52.     
  53.     var_dump($fields);
  54.         
  55.     @mysql_free_result($keys);
  56.         
  57.         while(list($kname, $columns) = @each($index))
  58.         {
  59.             $tabledump .= ",n";
  60.             $colnames=implode($columns,",");
  61.             
  62.             if($kname == "PRIMARY")
  63.             {
  64.                 $content .= "   PRIMARY KEY ($colnames)";
  65.             }
  66.             else
  67.             {
  68.                 if (substr($kname,0,6) == "UNIQUE")
  69.                 {
  70.                     $kname=substr($kname,7);
  71.                 }
  72.             
  73.                 $content .= "   KEY $kname ($colnames)";
  74.             
  75.             }
  76.         }
  77.     
  78.         $tabledump .= "n);nn";
  79.         
  80.         
  81.     
  82.     
  83.    
  84.     
  85.     
  86.     // Donn閑s - Data
  87.     
  88.     if ($write_datas)
  89.     {
  90.         $rows = mysql_query("SELECT * FROM $table");
  91.         if (mysql_error()) echo mysql_error()."<br>n";
  92.         $numfields = mysql_num_fields($rows);
  93.     
  94.         while ($row = mysql_fetch_array($rows))
  95.         {
  96.             $tabledump .= "INSERT INTO $table VALUES(";
  97.         
  98.             $cptchamp=-1;
  99.             $firstfield=1;
  100.             while (++$cptchamp<$numfields)
  101.             {
  102.                 if (!$firstfield)
  103.                 {
  104.                     $tabledump.=",";
  105.                 } 
  106.                 else
  107.                 {
  108.                     $firstfield=0;
  109.                 }
  110.         
  111.                 if (!isset($row[$cptchamp]))
  112.                 {
  113.                     $tabledump .= "NULL";
  114.                 }
  115.                 else
  116.                 {
  117.                     $tabledump .= "'".mysql_escape_string($row[$cptchamp])."'";
  118.                 }
  119.             }
  120.         
  121.             $tabledump .= ");n";
  122.         }
  123.         
  124.         @mysql_free_result($rows);
  125.     }
  126.     return $content;
  127. }