[ Index ]
 

Code source de osCommerce 2.2ms2-060817

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/catalog/install/includes/functions/ -> database.php (source)

   1  <?php
   2  /*
   3    $Id: database.php,v 1.3 2003/07/09 01:11:05 hpdl Exp $
   4  
   5    osCommerce, Open Source E-Commerce Solutions
   6    http://www.oscommerce.com
   7  
   8    Copyright (c) 2003 osCommerce
   9  
  10    Released under the GNU General Public License
  11  */
  12  
  13    function osc_db_connect($server, $username, $password, $link = 'db_link') {
  14      global $$link, $db_error;
  15  
  16      $db_error = false;
  17  
  18      if (!$server) {
  19        $db_error = 'No Server selected.';
  20        return false;
  21      }
  22  
  23      $$link = @mysql_connect($server, $username, $password) or $db_error = mysql_error();
  24  
  25      return $$link;
  26    }
  27  
  28    function osc_db_select_db($database) {
  29      return mysql_select_db($database);
  30    }
  31  
  32    function osc_db_close($link = 'db_link') {
  33      global $$link;
  34  
  35      return mysql_close($$link);
  36    }
  37  
  38    function osc_db_query($query, $link = 'db_link') {
  39      global $$link;
  40  
  41      return mysql_query($query, $$link);
  42    }
  43  
  44    function osc_db_fetch_array($db_query) {
  45      return mysql_fetch_array($db_query);
  46    }
  47  
  48    function osc_db_num_rows($db_query) {
  49      return mysql_num_rows($db_query);
  50    }
  51  
  52    function osc_db_data_seek($db_query, $row_number) {
  53      return mysql_data_seek($db_query, $row_number);
  54    }
  55  
  56    function osc_db_insert_id() {
  57      return mysql_insert_id();
  58    }
  59  
  60    function osc_db_free_result($db_query) {
  61      return mysql_free_result($db_query);
  62    }
  63  
  64    function osc_db_test_create_db_permission($database) {
  65      global $db_error;
  66  
  67      $db_created = false;
  68      $db_error = false;
  69  
  70      if (!$database) {
  71        $db_error = 'No Database selected.';
  72        return false;
  73      }
  74  
  75      if (!$db_error) {
  76        if (!@osc_db_select_db($database)) {
  77          $db_created = true;
  78          if (!@osc_db_query('create database ' . $database)) {
  79            $db_error = mysql_error();
  80          }
  81        } else {
  82          $db_error = mysql_error();
  83        }
  84        if (!$db_error) {
  85          if (@osc_db_select_db($database)) {
  86            if (@osc_db_query('create table temp ( temp_id int(5) )')) {
  87              if (@osc_db_query('drop table temp')) {
  88                if ($db_created) {
  89                  if (@osc_db_query('drop database ' . $database)) {
  90                  } else {
  91                    $db_error = mysql_error();
  92                  }
  93                }
  94              } else {
  95                $db_error = mysql_error();
  96              }
  97            } else {
  98              $db_error = mysql_error();
  99            }
 100          } else {
 101            $db_error = mysql_error();
 102          }
 103        }
 104      }
 105  
 106      if ($db_error) {
 107        return false;
 108      } else {
 109        return true;
 110      }
 111    }
 112  
 113    function osc_db_test_connection($database) {
 114      global $db_error;
 115  
 116      $db_error = false;
 117  
 118      if (!$db_error) {
 119        if (!@osc_db_select_db($database)) {
 120          $db_error = mysql_error();
 121        } else {
 122          if (!@osc_db_query('select count(*) from configuration')) {
 123            $db_error = mysql_error();
 124          }
 125        }
 126      }
 127  
 128      if ($db_error) {
 129        return false;
 130      } else {
 131        return true;
 132      }
 133    }
 134  
 135    function osc_db_install($database, $sql_file) {
 136      global $db_error;
 137  
 138      $db_error = false;
 139  
 140      if (!@osc_db_select_db($database)) {
 141        if (@osc_db_query('create database ' . $database)) {
 142          osc_db_select_db($database);
 143        } else {
 144          $db_error = mysql_error();
 145        }
 146      }
 147  
 148      if (!$db_error) {
 149        if (file_exists($sql_file)) {
 150          $fd = fopen($sql_file, 'rb');
 151          $restore_query = fread($fd, filesize($sql_file));
 152          fclose($fd);
 153        } else {
 154          $db_error = 'SQL file does not exist: ' . $sql_file;
 155          return false;
 156        }
 157  
 158        $sql_array = array();
 159        $sql_length = strlen($restore_query);
 160        $pos = strpos($restore_query, ';');
 161        for ($i=$pos; $i<$sql_length; $i++) {
 162          if ($restore_query[0] == '#') {
 163            $restore_query = ltrim(substr($restore_query, strpos($restore_query, "\n")));
 164            $sql_length = strlen($restore_query);
 165            $i = strpos($restore_query, ';')-1;
 166            continue;
 167          }
 168          if ($restore_query[($i+1)] == "\n") {
 169            for ($j=($i+2); $j<$sql_length; $j++) {
 170              if (trim($restore_query[$j]) != '') {
 171                $next = substr($restore_query, $j, 6);
 172                if ($next[0] == '#') {
 173  // find out where the break position is so we can remove this line (#comment line)
 174                  for ($k=$j; $k<$sql_length; $k++) {
 175                    if ($restore_query[$k] == "\n") break;
 176                  }
 177                  $query = substr($restore_query, 0, $i+1);
 178                  $restore_query = substr($restore_query, $k);
 179  // join the query before the comment appeared, with the rest of the dump
 180                  $restore_query = $query . $restore_query;
 181                  $sql_length = strlen($restore_query);
 182                  $i = strpos($restore_query, ';')-1;
 183                  continue 2;
 184                }
 185                break;
 186              }
 187            }
 188            if ($next == '') { // get the last insert query
 189              $next = 'insert';
 190            }
 191            if ( (eregi('create', $next)) || (eregi('insert', $next)) || (eregi('drop t', $next)) ) {
 192              $next = '';
 193              $sql_array[] = substr($restore_query, 0, $i);
 194              $restore_query = ltrim(substr($restore_query, $i+1));
 195              $sql_length = strlen($restore_query);
 196              $i = strpos($restore_query, ';')-1;
 197            }
 198          }
 199        }
 200  
 201        osc_db_query("drop table if exists address_book, address_format, banners, banners_history, categories, categories_description, configuration, configuration_group, counter, counter_history, countries, currencies, customers, customers_basket, customers_basket_attributes, customers_info, languages, manufacturers, manufacturers_info, orders, orders_products, orders_status, orders_status_history, orders_products_attributes, orders_products_download, products, products_attributes, products_attributes_download, prodcts_description, products_options, products_options_values, products_options_values_to_products_options, products_to_categories, reviews, reviews_description, sessions, specials, tax_class, tax_rates, geo_zones, whos_online, zones, zones_to_geo_zones");
 202  
 203        for ($i=0; $i<sizeof($sql_array); $i++) {
 204          osc_db_query($sql_array[$i]);
 205        }
 206      } else {
 207        return false;
 208      }
 209    }
 210  ?>


Généré le : Mon Nov 26 19:48:25 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics