diff options
| author | the_systech <the_systech@users.sourceforge.net> | 2001-09-24 17:26:36 +0000 |
|---|---|---|
| committer | the_systech <the_systech@users.sourceforge.net> | 2001-09-24 17:26:36 +0000 |
| commit | 1871f5e2c0e5c667e4b9b11a316f0db64d728693 (patch) | |
| tree | d96bd5a170b2b52c92988a33a9405c6fd4f2e363 /phpBB/admin/admin_db_utilities.php | |
| parent | bc14000a95e6e5d1ed49ac7bd5799a09c32f9d67 (diff) | |
| download | forums-1871f5e2c0e5c667e4b9b11a316f0db64d728693.tar forums-1871f5e2c0e5c667e4b9b11a316f0db64d728693.tar.gz forums-1871f5e2c0e5c667e4b9b11a316f0db64d728693.tar.bz2 forums-1871f5e2c0e5c667e4b9b11a316f0db64d728693.tar.xz forums-1871f5e2c0e5c667e4b9b11a316f0db64d728693.zip | |
Seperated out sql parsing functions into a new file.
git-svn-id: file:///svn/phpbb/trunk@1069 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/admin/admin_db_utilities.php')
| -rw-r--r-- | phpBB/admin/admin_db_utilities.php | 93 |
1 files changed, 7 insertions, 86 deletions
diff --git a/phpBB/admin/admin_db_utilities.php b/phpBB/admin/admin_db_utilities.php index 43d382c469..95f1e0d6ba 100644 --- a/phpBB/admin/admin_db_utilities.php +++ b/phpBB/admin/admin_db_utilities.php @@ -40,7 +40,6 @@ if($setmodules == 1) $phpbb_root_path = "./../"; include($phpbb_root_path . 'extension.inc'); include($phpbb_root_path . 'common.'.$phpEx); - // // Start session management // @@ -74,8 +73,15 @@ define("VERBOSE", 0); @set_time_limit(1200); // +// Pull in the functions for splitting an sql file into individual statements +// + +include($phpbb_root_path . 'includes/sql_parse'.$phpEx); + +// // The following functions are adapted from phpMyAdmin and upgrade_20.php // + // // This function is used for grabbing the sequences for postgres... // @@ -653,91 +659,6 @@ function output_table_content($content) return; } - -// -// remove_remarks will strip the sql comment lines out of an uploaded sql file -// -function remove_remarks($sql) -{ - $lines = explode("\n", $sql); - - // try to keep mem. use down - $sql = ""; - - $linecount = count($lines); - $output = ""; - - for ($i = 0; $i < $linecount; $i++) - { - if (($i != ($linecount - 1)) || (strlen($lines[$i]) > 0)) - { - if ($lines[$i][0] != "#") - { - $output .= $lines[$i] . "\n"; - } - else - { - $output .= "\n"; - } - // Trading a bit of speed for lower mem. use here. - $lines[$i] = ""; - } - } - - return $output; - -} - -// -// split_sql_file will split an uploaded sql file into single sql statements. -// Note: expects trim() to have already been run on $sql. -// -function split_sql_file($sql, $delimiter) -{ - // Split up our string into "possible" SQL statements. - $tokens = explode($delimiter, $sql); - // try to save memory. - $sql = ""; - $output = array(); - - // we don't actually care about the matches preg gives us. - $matches = array(); - - // this is faster than calling count($oktens) every time thru the loop. - $token_count = count($tokens); - for ($i = 0; $i < $token_count; $i++) - { - // Don't wanna add an empty string as the last thing in the array. - if (($i != ($token_count - 1)) || (strlen($tokens[$i] > 0))) - { - // This is the total number of single quotes in the token. - $total_quotes = preg_match_all("/'/", $tokens[$i], $matches); - // Counts single quotes that are preceded by an odd number of backslashes, - // which means they're escaped quotes. - $escaped_quotes = preg_match_all("/(?<!\\\\)(\\\\\\\\)*\\\\'/", $tokens[$i], $matches); - - $unescaped_quotes = $total_quotes - $escaped_quotes; - - // If the number of unescaped quotes is even, then the delimiter did NOT occur inside a string literal. - if (($unescaped_quotes % 2) == 0) - { - // It's a complete sql statement. - $output[] = $tokens[$i]; - // save memory. - $tokens[$i] = ""; - } - else - { - // it's not complete, so prepend it onto the next token and continue the loop as usual. - $tokens[$i + 1] = $tokens[$i] . ";" . $tokens[$i + 1]; - // save memory. - $tokens[$i] = ""; - } - } - } - - return $output; -} // // End Functions // ------------- |
