📄 sql.php
字号:
<?
function split_sql_file ($sql, $delimiter = ';')
{
$sql = trim ($sql);
$char = '';
$last_char = '';
$ret = array ();
$string_start = '';
$in_string = FALSE;
$escaped_backslash = FALSE;
for ($i = 0; $i < strlen ($sql); ++$i)
{
$char = $sql[$i];
if ($char == $delimiter)
{
if (!($in_string))
{
$ret[] = substr ($sql, 0, $i);
$sql = substr ($sql, $i + 1);
$i = 0;
$last_char = '';
}
}
if ($in_string)
{
if ($char == '\\')
{
if ($last_char != '\\')
{
$escaped_backslash = FALSE;
}
else
{
$escaped_backslash = !$escaped_backslash;
}
}
if ($char == $string_start)
{
if (!(((!($char == '`') AND $last_char == '\\') AND !$escaped_backslash)))
{
$in_string = FALSE;
$string_start = '';
}
}
}
else
{
if (!(((!($char == '"') AND !($char == '\'')) AND !($char == '`'))))
{
$in_string = TRUE;
$string_start = $char;
}
}
$last_char = $char;
}
if (!(empty ($sql)))
{
$ret[] = $sql;
}
return $ret;
}
include_once 'inc/auth.php';
ob_implicit_flush ();
echo str_repeat (' ', 512);
echo '
<html>
<head>
<title>数据库导入/升级</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body class="bodycolor" topmargin="5">
<table border="0" width="100%" cellspacing="0" cellpadding="3" class="small">
<tr>
<td class="Big"><img src="/images/sys_config.gif" align="absmiddle"><span class="big3"> 数据库导入/升级</span><br>
</td>
</tr>
</table>
<br>
';
$tables = @fread ($fp = @fopen ($sql_file, 'r'), @filesize ($sql_file));
@fclose ($fp);
if (!($tables))
{
message ('', '对不起,无法读取数据库导入文件 ' . $sql_file . ' 。');
exit ();
}
$querys = split_sql_file ($tables);
$connection = openconnection ();
$ERROR_COUNT = 0;
foreach ($querys as $query)
{
preg_match ('/CREATE TABLE `([a-z0-9_]+)`/i', $query, $tmp);
$tableName = $tmp[1];
if (exequery ($connection, $query))
{
if ($tableName)
{
message ('', '成功建立表格 ' . $tableName);
continue;
}
continue;
}
else
{
message ('数据导入/升级出现错误', '错误原因:' . mysql_error () . ('<br><br>错误语句:' . $query));
++$ERROR_COUNT;
continue;
}
}
$STR = '数据库导入/升级完成!';
if (0 < $ERROR_COUNT)
{
$STR .= '<br>共发生' . $ERROR_COUNT . '次错误!';
}
else
{
$STR .= '<br>全部导入/升级成功!';
}
message ('', $STR);
button_back ();
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -