function olc_db_test_create_db_permission($database) { global $db_error; $db_created = false; $db_error = false; if ($database) { if (!$db_error) { if (!@olc_db_select_db($database)) { $db_created = true; if (!@olc_db_query_installer('create database ' . $database)) { $db_error = true; } } else { $db_error = true; } if (!$db_error) { if (@olc_db_select_db($database)) { if (@olc_db_query_installer('create table temp ( temp_id int(5) )')) { if (@olc_db_query_installer('drop table temp')) { if ($db_created) { if (@olc_db_query_installer('drop database ' . $database)) { } else { $db_error = true; } } } else { $db_error = true; } } else { $db_error = true; } } else { $db_error = true; } } } if ($db_error) { if (USE_ADODB === true) { global ${$link}; $db_error = ${$link}->ErrorMsg(); } else { $db_error = mysql_error(); } return false; } else { return true; } } else { $db_error = 'Keine Datenbank gewählt.'; return false; } }
function olc_db_test_connection($database) { global $db_error; $db_error = false; if (olc_db_select_db($database)) { $db_error = !olc_db_query(SELECT_COUNT . SQL_FROM . TABLE_CONFIGURATION); } else { $db_error = true; } if ($db_error) { if (USE_ADODB === true) { global ${$link}; $db_error = ${$link}->ErrorMsg(); } else { $db_error = mysql_error(); } return false; } else { return true; } }
function olc_db_install($database, $sql_file, $table_prefix) { global $db_error, $parse_time; $db_error = false; if (!@olc_db_select_db($database)) { if (@olc_db_query('create database ' . $database)) { olc_db_select_db($database); } else { if (USE_ADODB === true) { global ${$link}; $db_error = ${$link}->ErrorMsg(); } else { $db_error = mysql_error(); } } } if ($db_error) { return false; } else { if (file_exists($sql_file)) { //$install_queries=file_get_contents($sql_file); $standard_prefix = 'prf_'; $adjust_prefix = $table_prefix != $standard_prefix; define('PAGE_PARSE_START_TIME', microtime()); $install_queries = file($sql_file); $n = sizeof($install_queries); if (USE_AJAX) { $chunks = $n / 100; $chunk = 0; $progress_file = 'progress.txt'; @unlink($progress_file); $progress_file_content = 'p|100|'; } for ($i = 0; $i < $n; $i++) { $query_line = trim($install_queries[$i]); if ($query_line) { if ($query_line[0] != HASH) { $query = EMPTY_STRING; while (true) { $query_line = trim($install_queries[$i]); $query .= $query_line; if (substr($query_line, -1, 1) == SEMI_COLON) { if ($adjust_prefix) { $query = str_replace($standard_prefix, $table_prefix, $query); } if (@olc_db_query($query)) { $sql_statements++; break; } else { $db_error = ERROR_WRONG_SQL_STATEMENT . HTML_BR . HTML_BR . nl2br($query) . HTML_BR . HTML_BR; return false; } } else { $i++; } } if (USE_AJAX) { $store_status = $i % $chunks == 1; if ($store_status) { $chunk++; $retries = 1; $f = fopen($progress_file, 'w'); $content = $progress_file_content . $chunk; while (fwrite($f, $content) === false) { if ($retries == 20) { break; } else { usleep(200000); $retries++; } } fclose($f); } } } } } $show_parse_time_anyway = true; $is_installer = true; define('NOT_IS_ADMIN_FUNCTION', false); define('SESSION_CURRENCY', 'EUR'); include DIR_FS_INC . 'olc_precision.inc.php'; include DIR_FS_INC . 'olc_get_parse_time.inc.php'; $sql_per_second = number_format($sql_statements / $parse_time_raw, 1, CURRENCY_DECIMAL_POINT, CURRENCY_THOUSANDS_POINT); $sql_statements = number_format($sql_statements, 0, CURRENCY_DECIMAL_POINT, CURRENCY_THOUSANDS_POINT); $parse_time = sprintf(TEXT_PARSE_TIME, $sql_statements, $parse_time, $sql_per_second); } else { $db_error = ERROR_NO_SQL_FILE . $sql_file; } } }