[ Index ] |
|
Code source de osCommerce 2.2ms2-060817 |
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 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Mon Nov 26 19:48:25 2007 | par Balluche grâce à PHPXref 0.7 |
![]() |