[ Index ]
 

Code source de PHP PEAR 1.4.5

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/MDB/ -> reverse_engineer_xml_schema.php (source)

   1  <?php
   2  // +----------------------------------------------------------------------+
   3  // | PHP Version 4                                                        |
   4  // +----------------------------------------------------------------------+
   5  // | Copyright (c) 1998-2004 Manuel Lemos, Tomas V.V.Cox,                 |
   6  // | Stig. S. Bakken, Lukas Smith                                         |
   7  // | All rights reserved.                                                 |
   8  // +----------------------------------------------------------------------+
   9  // | MDB is a merge of PEAR DB and Metabases that provides a unified DB   |
  10  // | API as well as database abstraction for PHP applications.            |
  11  // | This LICENSE is in the BSD license style.                            |
  12  // |                                                                      |
  13  // | Redistribution and use in source and binary forms, with or without   |
  14  // | modification, are permitted provided that the following conditions   |
  15  // | are met:                                                             |
  16  // |                                                                      |
  17  // | Redistributions of source code must retain the above copyright       |
  18  // | notice, this list of conditions and the following disclaimer.        |
  19  // |                                                                      |
  20  // | Redistributions in binary form must reproduce the above copyright    |
  21  // | notice, this list of conditions and the following disclaimer in the  |
  22  // | documentation and/or other materials provided with the distribution. |
  23  // |                                                                      |
  24  // | Neither the name of Manuel Lemos, Tomas V.V.Cox, Stig. S. Bakken,    |
  25  // | Lukas Smith nor the names of his contributors may be used to endorse |
  26  // | or promote products derived from this software without specific prior|
  27  // | written permission.                                                  |
  28  // |                                                                      |
  29  // | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS  |
  30  // | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT    |
  31  // | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS    |
  32  // | FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE      |
  33  // | REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,          |
  34  // | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
  35  // | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS|
  36  // |  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED  |
  37  // | AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT          |
  38  // | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY|
  39  // | WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE          |
  40  // | POSSIBILITY OF SUCH DAMAGE.                                          |
  41  // +----------------------------------------------------------------------+
  42  // | Author: Lukas Smith <smith@backendmedia.com>                         |
  43  // +----------------------------------------------------------------------+
  44  //
  45  // $Id: reverse_engineer_xml_schema.php,v 1.17.4.3 2004/03/10 14:43:28 lsmith Exp $
  46  //
  47  
  48  /**
  49   * MDB reverse engineering of xml schemas script.
  50   *
  51   * @package MDB
  52   * @category Database
  53   * @author  Lukas Smith <smith@backendmedia.com>
  54   */
  55  
  56  echo ('
  57  <html>
  58  <body>
  59  ');
  60  
  61      if(isset($_REQUEST['submit']) && $_REQUEST['file'] != '') {
  62          // BC hack to define PATH_SEPARATOR for version of PHP prior 4.3
  63          if(!defined('PATH_SEPARATOR')) {
  64              if(defined('DIRECTORY_SEPARATOR') && DIRECTORY_SEPARATOR == "\\") {
  65                  define('PATH_SEPARATOR', ';');
  66              } else {
  67                  define('PATH_SEPARATOR', ':');
  68              }
  69          }
  70          ini_set('include_path', '..'.PATH_SEPARATOR.ini_get('include_path'));
  71          require_once ('MDB.php');
  72          @include_once('Var_Dump.php');
  73          MDB::loadFile('Manager');
  74          $dsn = $_REQUEST['type'].'://'.$_REQUEST['user'].':'.$_REQUEST['pass'].'@'.$_REQUEST['host'].'/'.$_REQUEST['name'];
  75  
  76          $manager =& new MDB_Manager;
  77          $err = $manager->connect($dsn);
  78          if(MDB::isError($err)) {
  79              $error = $err->getMessage();
  80          } else {
  81              $manager->captureDebugOutput(TRUE);
  82              $manager->database->setOption('log_line_break', '<br>');
  83              if($_REQUEST['action']) {
  84                  set_time_limit(0);
  85              }
  86              if($_REQUEST['action'] == 'dump') {
  87                  switch ($_REQUEST['dump']) {
  88                      case 'structure':
  89                          $dump_what = MDB_MANAGER_DUMP_STRUCTURE;
  90                          break;
  91                      case 'content':
  92                          $dump_what = MDB_MANAGER_DUMP_CONTENT;
  93                          break;
  94                      default:
  95                          $dump_what = MDB_MANAGER_DUMP_ALL;
  96                          break;
  97                  }
  98                  $dump_config = array(
  99                      'Output_Mode' => 'file',
 100                      'Output' => $_REQUEST['file']
 101                  );
 102                  if (class_exists('Var_Dump')) {
 103                      Var_Dump::display($manager->dumpDatabase($dump_config, $dump_what));
 104                  } else {
 105                      var_dump($manager->dumpDatabase($dump_config, $dump_what));
 106                  }
 107              } else if($_REQUEST['action'] == 'create') {
 108                  if (class_exists('Var_Dump')) {
 109                      Var_Dump::display($manager->updateDatabase($_REQUEST['file']));
 110                  } else {
 111                      var_dump($manager->updateDatabase($_REQUEST['file']));
 112                  }
 113              } else {
 114                  $error = 'no action selected';
 115              }
 116              $warnings = $manager->getWarnings();
 117              if(count($warnings) > 0) {
 118                  echo('Warnings<br>');
 119                  if (class_exists('Var_Dump')) {
 120                      Var_Dump::display($warnings);
 121                  } else {
 122                      var_dump($warnings);
 123                  }
 124              }
 125              if($manager->options['debug']) {
 126                  echo('Debug messages<br>');
 127                  echo($manager->debugOutput().'<br>');
 128              }
 129              echo('Database structure<br>');
 130              if (class_exists('Var_Dump')) {
 131                  Var_Dump::display($manager->database_definition);
 132              } else {
 133                  var_dump($manager->database_definition);
 134              }
 135              $manager->disconnect();
 136          }
 137      }
 138      
 139      if (!isset($_REQUEST['submit']) || isset($error)) {
 140          if (isset($error) && $error) {
 141              echo($error.'<br>');
 142          }
 143          echo ('
 144              <form action="reverse_engineer_xml_schema.php">
 145              Database Type:
 146              <select name="type">
 147                  <option value="mysql"');
 148                  if(isset($_REQUEST['type']) && $_REQUEST['type'] == 'mysql') {echo ('selected');}
 149                  echo ('>MySQL</option>
 150                  <option value="pgsql"');
 151                  if(isset($_REQUEST['type']) && $_REQUEST['type'] == 'mysql') {echo ('selected');}
 152                  echo ('>Postgres</option>
 153              </select>
 154              <br />
 155              Username:
 156              <input type="text" name="user" value="'.(isset($_REQUEST['user']) ? $_REQUEST['user'] : '').'" />
 157              <br />
 158              Password:
 159              <input type="text" name="pass" value="'.(isset($_REQUEST['pass']) ? $_REQUEST['pass'] : '').'" />
 160              <br />
 161              Host:
 162              <input type="text" name="host" value="'.(isset($_REQUEST['host']) ? $_REQUEST['host'] : '').'" />
 163              <br />
 164              Databasename:
 165              <input type="text" name="name" value="'.(isset($_REQUEST['name']) ? $_REQUEST['name'] : '').'" />
 166              <br />
 167              Filename:
 168              <input type="text" name="file" value="'.(isset($_REQUEST['file']) ? $_REQUEST['file'] : '').'" />
 169              <br />
 170              Dump:
 171              <input type="radio" name="action" value="dump" />
 172              <select name="dump">
 173                  <option value="all"');
 174                  if(!isset($_REQUEST['dump']) || $_REQUEST['dump'] == 'all') {echo ('selected');}
 175                  echo ('>All</option>
 176                  <option value="structure"');
 177                  if(isset($_REQUEST['dump']) && $_REQUEST['dump'] == 'structure') {echo ('selected');}
 178                  echo ('>Structure</option>
 179                  <option value="content"');
 180                  if(isset($_REQUEST['dump']) && $_REQUEST['dump'] == 'content') {echo ('selected');}
 181                  echo ('>Content</option>
 182              </select>
 183              <br />
 184              Create:
 185              <input type="radio" name="action" value="create" />
 186              <br />
 187              <input type="submit" name="submit" value="ok" />
 188          ');
 189      }
 190  
 191      echo ('
 192  </form>
 193  </body>
 194  </html>
 195      ');
 196  ?>


Généré le : Sun Feb 25 14:08:00 2007 par Balluche grâce à PHPXref 0.7