function vam_db_test_create_db_permission($database) { global $db_error; $db_created = false; $db_error = false; if (!$database) { $db_error = 'No Database selected.'; return false; } if (!$db_error) { if (!@vam_db_select_db($database)) { $db_created = true; if (!@vam_db_query_installer_installer('create database ' . $database)) { $db_error = mysql_error(); } } else { $db_error = mysql_error(); } if (!$db_error) { if (@vam_db_select_db($database)) { if (@vam_db_query_installer('create table temp ( temp_id int(5) )')) { if (@vam_db_query_installer('drop table temp')) { if ($db_created) { if (@vam_db_query_installer('drop database ' . $database)) { } else { $db_error = mysql_error(); } } } else { $db_error = mysql_error(); } } else { $db_error = mysql_error(); } } else { $db_error = mysql_error(); } } } if ($db_error) { return false; } else { return true; } }
function vam_db_test_connection($database) { global $db_error; $db_error = false; if (!$db_error) { if (!@vam_db_select_db($database)) { $db_error = mysql_error(); } else { if (!@vam_db_query_installer("select count(*) from " . TABLE_CONFIGURATION . "")) { $db_error = mysql_error(); } } } if ($db_error) { return false; } else { return true; } }
function vam_db_install($database, $sql_file) { global $db_error; $db_error = false; if (!@vam_db_select_db($database)) { if (@vam_db_query_installer('create database ' . $database)) { vam_db_select_db($database); } else { $db_error = mysql_error(); } } if (!$db_error) { if (file_exists($sql_file)) { $fd = fopen($sql_file, 'rb'); $restore_query = fread($fd, filesize($sql_file)); fclose($fd); } else { $db_error = 'SQL file does not exist: ' . $sql_file; return false; } $sql_array = array(); $sql_length = strlen($restore_query); $pos = strpos($restore_query, ';'); for ($i = $pos; $i < $sql_length; $i++) { if ($restore_query[0] == '#') { $restore_query = ltrim(substr($restore_query, strpos($restore_query, "\n"))); $sql_length = strlen($restore_query); $i = strpos($restore_query, ';') - 1; continue; } if ($restore_query[$i + 1] == "\n") { for ($j = $i + 2; $j < $sql_length; $j++) { if (trim($restore_query[$j]) != '') { $next = substr($restore_query, $j, 6); if ($next[0] == '#') { // find out where the break position is so we can remove this line (#comment line) for ($k = $j; $k < $sql_length; $k++) { if ($restore_query[$k] == "\n") { break; } } $query = substr($restore_query, 0, $i + 1); $restore_query = substr($restore_query, $k); // join the query before the comment appeared, with the rest of the dump $restore_query = $query . $restore_query; $sql_length = strlen($restore_query); $i = strpos($restore_query, ';') - 1; continue 2; } break; } } if ($next == '') { // get the last insert query $next = 'insert'; } if (preg_match('/create/i', $next) || preg_match('/insert/i', $next) || preg_match('/drop t/i', $next)) { $next = ''; $sql_array[] = substr($restore_query, 0, $i); $restore_query = ltrim(substr($restore_query, $i + 1)); $sql_length = strlen($restore_query); $i = strpos($restore_query, ';') - 1; } } } vam_db_query_installer("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"); for ($i = 0; $i < sizeof($sql_array); $i++) { vam_db_query_installer($sql_array[$i]); } } else { return false; } }