📄 sql.php
字号:
<?php
function split_sql_file( $sql, $delimiter = ";" )
{
$sql = trim( $sql );
$char = "";
$last_char = "";
$ret = array( );
$string_start = "";
$in_string = FALSE;
$escaped_backslash = FALSE;
$i = 0;
for ( ; $i < strlen( $sql ); ++$i )
{
$char = $sql[$i];
if ( $char == $delimiter && !$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 && ( $char == "`" || !( $last_char == "\\" && !$escaped_backslash ) ) )
{
$in_string = FALSE;
$string_start = "";
}
}
else if ( $char == "\"" || $char == "'" || $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 "\r\n<html>\r\n<head>\r\n<title>数据库导入/升级</title>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">\r\n</head>\r\n\r\n<body class=\"bodycolor\" topmargin=\"5\">\r\n\r\n<table border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"3\" class=\"small\">\r\n <tr>\r\n <td class=\"Big\"><img src=\"/images/sys_config.gif\" align=\"absmiddle\">";
echo "<s";
echo "pan class=\"big3\"> 数据库导入/升级</span><br>\r\n </td>\r\n </tr>\r\n</table>\r\n\r\n<br>\r\n\r\n";
$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}" );
}
}
else
{
message( "数据导入/升级出现错误", "错误原因:".mysql_error( )."<br><br>错误语句:{$query}" );
++$ERROR_COUNT;
}
}
$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 + -