📄 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/auth1.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<body topmargin=\"5\">\r\n<table border=\"0\" width=\"100%\" cellspacing=\"1\" cellpadding=\"0\">\r\n <tr>\r\n <td class=\"tablehead1\"><img src=\"/images/sys_config.gif\" align=\"absmiddle\"> 数据库导入/升级\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class=\"tablehead2\"><a href=\"javascript:history.back()\"><img s";
echo "rc=\"/images/button/return.gif\" align=\"absmiddle\" border=\"0\"></a>\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 );
$sql = "DELETE FROM user_menu";
exequery( $connection, $sql );
$sql = "SELECT USER_ID FROM user";
$rs = exequery( $connection, $sql );
while ( $row = mysql_fetch_array( $rs ) )
{
$user_id = $row['USER_ID'];
$sql_m = "SELECT * FROM sys_function";
$rs_m = exequery( $connection, $sql_m );
$order_c1 = 0;
$order_c2 = 0;
$order_c3 = 0;
while ( $row_m = mysql_fetch_array( $rs_m ) )
{
if ( strlen( $menu_id ) == 2 )
{
++$order_c1;
$order_c = $order_c1;
}
if ( strlen( $menu_id ) == 4 )
{
++$order_c2;
$order_c = $order_c2;
}
if ( strlen( $menu_id ) == 6 )
{
++$order_c3;
$order_c = $order_c3;
}
$func_id = $row_m['FUNC_ID'];
$menu_id = $row_m['MENU_ID'];
$func_name = $row_m['FUNC_NAME'];
$func_code = $row_m['FUNC_CODE'];
$func_follow = $row_m['FUNC_FOLLOW'];
$order_id = $order_c ? $order_c : 0;
$func_isshow = 1;
$func_issys = 1;
$func_type = 0;
$func_type_id = 0;
$sql_um = "INSERT INTO user_menu VALUES (\r\n\t\t\t'{$user_id}',\r\n\t\t\t{$func_id},\r\n\t\t\t'{$menu_id}',\r\n\t\t\t{$order_id},\r\n\t\t\t{$func_isshow},\r\n\t\t\t{$func_issys},\r\n\t\t\t'{$func_name}',\r\n\t\t\t'{$func_code}',\r\n\t\t\t{$func_follow},\r\n\t\t\t\t{$func_type},\r\n\t\t\t\t'{$func_type_id}'\r\n\t\t\t)";
exequery( $connection, $sql_um );
}
}
$STR = "所有用户的菜单已经恢复成默认!";
message( "", $STR );
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -