⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad_mysql.php

📁 泛微协同办公系统标准版E-office V5.5的源代码内含泛微办公系统V5.5自动注册文件。
💻 PHP
📖 第 1 页 / 共 3 页
字号:
			$SKIN->form_yes_no( "enable_gzip", 1 )
		) );
		$ADMIN->html .= $SKIN->end_form( "开始备份论坛数据" );
		$ADMIN->html .= $SKIN->end_table( );
		$ADMIN->output( );
	}

	function view_sql( $sql )
	{
		global $IN;
		global $INFO;
		global $DB;
		global $SKIN;
		global $ADMIN;
		global $std;
		global $MEMBER;
		global $GROUP;
		$limit = 50;
		$start = intval( $IN['st'] ) == "" ? 0 : intval( $IN['st'] );
		$pages = "";
		$ADMIN->page_detail = "此功能允许你管理你的 mySQL 数据库.{$extra}";
		$ADMIN->page_title = "mySQL ".$this->true_version." 数据库管理工具";
		$map = array( "processes" => "数据用户信息", "runtime" => "数据运行信息", "system" => "数据系统信息" );
		if ( $map[$IN['code']] != "" )
		{
			$tbl_title = $map[$IN['code']];
			$man_query = 0;
		}
		else
		{
			$tbl_title = "SQL 查询语句";
			$man_query = 1;
		}
		if ( $man_query == 1 )
		{
			$SKIN->td_header[] = array( " ", "100%" );
			$ADMIN->html .= $SKIN->start_form( array(
				1 => array( "act", "mysql" ),
				2 => array( "code", "runsql" )
			) );
			$ADMIN->html .= $SKIN->start_table( "运行 SQL 语句" );
			$ADMIN->html .= $SKIN->add_td_row( array(
				"<center>".$SKIN->form_textarea( "query", $sql )."</center>"
			) );
			$ADMIN->html .= $SKIN->end_form( "运行新 SQL 语句" );
			$ADMIN->html .= $SKIN->end_table( );
			if ( preg_match( "/^DROP|CREATE|FLUSH/i", trim( $sql ) ) )
			{
				$ADMIN->error = "对不起,为了安全起见,这些权限不允许。";
			}
		}
		$DB->return_die = 1;
		$DB->query( $sql );
		if ( $DB->error != "" )
		{
			$SKIN->td_header[] = array( "&nbsp;", "100%" );
			$ADMIN->html .= $SKIN->start_table( "SQL 语句错误" );
			$ADMIN->html .= $SKIN->add_td_row( array(
				$DB->error
			) );
			$ADMIN->html .= $SKIN->end_table( );
			$ADMIN->output( );
		}
		if ( preg_match( "/^INSERT|UPDATE|DELETE|ALTER/i", trim( $sql ) ) )
		{
			$SKIN->td_header[] = array( "&nbsp;", "100%" );
			$ADMIN->html .= $SKIN->start_table( "运行 SQL 语句完成" );
			$ADMIN->html .= $SKIN->add_td_row( array(
				"语句:{$sql}<br>执行成功"
			) );
			$ADMIN->html .= $SKIN->end_table( );
			$ADMIN->output( );
		}
		else if ( preg_match( "/^SELECT/i", $sql ) && !preg_match( "/LIMIT[ 0-9,]+\$/i", $sql ) )
		{
			$rows_returned = $DB->get_num_rows( );
			if ( $limit < $rows_returned )
			{
				$links = $std->build_pagelinks( array(
					"TOTAL_POSS" => $rows_returned,
					"PER_PAGE" => $limit,
					"CUR_ST_VAL" => $start,
					"L_SINGLE" => " ",
					"L_MULTI" => "页:",
					"BASE_URL" => $ADMIN->base_url."&act=mysql&code=runsql&query=".urlencode( $sql )
				) );
				$sql .= " LIMIT {$start}, {$limit}";
				$DB->query( $sql, 1 );
			}
		}
		$fields = $DB->get_result_fields( );
		$cnt = count( $fields );
		$i = 0;
		for ( ;	$i < $cnt;	++$i	)
		{
			$SKIN->td_header[] = array(
				$fields[$i]->name,
				"*"
			);
		}
		$ADMIN->html .= $SKIN->start_table( "结果:".$tbl_title );
		if ( $links != "" )
		{
			$pages = $SKIN->add_td_basic( $links, "left", "tdrow2" );
			$ADMIN->html .= $pages;
		}
		while ( $r = $DB->fetch_row( ) )
		{
			$rows = array( );
			$i = 0;
			for ( ;	$i < $cnt;	++$i	)
			{
				if ( $man_query == 1 && 200 < strlen( $r[$fields[$i]->name] ) )
				{
					$r[$fields[$i]->name] = substr( $r[$fields[$i]->name], 0, 200 )."...";
				}
				$rows[] = wordwrap( htmlspecialchars( nl2br( $r[$fields[$i]->name] ) ), 50, "<br>", 1 );
			}
			$ADMIN->html .= $SKIN->add_td_row( $rows );
		}
		$ADMIN->html .= $SKIN->end_table( );
		$ADMIN->output( );
	}

	function run_tool( )
	{
		global $IN;
		global $INFO;
		global $DB;
		global $SKIN;
		global $ADMIN;
		global $std;
		global $MEMBER;
		global $GROUP;
		$ADMIN->page_detail = "此功能允许你管理你的 mySQL 数据库.{$extra}";
		$ADMIN->page_title = "mySQL ".$this->true_version." 数据库管理工具";
		$tables = array( );
		foreach ( $IN as $key => $value )
		{
			if ( !preg_match( "/^tbl_(\\S+)\$/", $key, $match ) && !$IN[$match[0]] )
			{
				$tables[] = $match[1];
			}
		}
		if ( count( $tables ) < 1 )
		{
			$ADMIN->error( "你必须选择需要执行此功能的数据表格。" );
		}
		if ( strtoupper( $IN['tool'] ) == "DROP" || strtoupper( $IN['tool'] ) == "CREATE" || strtoupper( $IN['tool'] ) == "FLUSH" )
		{
			$ADMIN->error( "对不起,你不能执行此操作!" );
		}
		foreach ( $tables as $table )
		{
			$DB->query( strtoupper( $IN['tool'] )." TABLE {$table}" );
			$fields = $DB->get_result_fields( );
			$data = $DB->fetch_row( );
			$cnt = count( $fields );
			$i = 0;
			for ( ;	$i < $cnt;	++$i	)
			{
				$SKIN->td_header[] = array(
					$fields[$i]->name,
					"*"
				);
			}
			$ADMIN->html .= $SKIN->start_table( "结果:".$IN['tool']." ".$table );
			$rows = array( );
			$i = 0;
			for ( ;	$i < $cnt;	++$i	)
			{
				$rows[] = $data[$fields[$i]->name];
			}
			$ADMIN->html .= $SKIN->add_td_row( $rows );
			$ADMIN->html .= $SKIN->end_table( );
		}
		$ADMIN->output( );
	}

	function list_index( )
	{
		global $IN;
		global $INFO;
		global $DB;
		global $SKIN;
		global $ADMIN;
		global $std;
		global $MEMBER;
		global $GROUP;
		$form_array = array( );
		if ( $this->mysql_version < 32322 )
		{
			$extra = "<br><b>注意:你的 mySQL 数据库版本对某些功能进行了限制。</b>";
		}
		$ADMIN->page_detail = "此功能允许你管理你的 mySQL 数据库.{$extra}";
		$ADMIN->page_title = "mySQL ".$this->true_version." 数据库管理工具";
		$idx_size = 0;
		$tbl_size = 0;
		$ADMIN->html .= "\n\t\t\t\t     <script language='Javascript'>\n                     <!--\n                     function CheckAll(cb) {\n                         var fmobj = document.theForm;\n                         for (var i=0;i<fmobj.elements.length;i++) {\n                             var e = fmobj.elements[i];\n                             if ((e.name != 'allbox') && (e.type=='checkbox') && (!e.disabled)) {\n                                 e.checked = fmobj.allbox.checked;\n                             }\n                         }\n                     }\n                     function CheckCheckAll(cb) {\t\n                         var fmobj = document.theForm;\n                         var TotalBoxes = 0;\n                         var TotalOn = 0;\n                         for (var i=0;i<fmobj.elements.length;i++) {\n                             var e = fmobj.elements[i];\n                             if ((e.name != 'allbox') && (e.type=='checkbox')) {\n                                 TotalBoxes++;\n                                 if (e.checked) {\n                                     TotalOn++;\n                                 }\n                             }\n                         }\n                         if (TotalBoxes==TotalOn) {fmobj.allbox.checked=true;}\n                         else {fmobj.allbox.checked=false;}\n                     }\n                     //-->\n                     </script>\n                     ";
		$ADMIN->html .= $SKIN->start_form( array(
			1 => array( "act", "mysql" ),
			2 => array( "code", "dotool" )
		), "theForm" );
		if ( 32303 <= $this->mysql_version )
		{
			$SKIN->td_header[] = array( "数据表", "20%" );
			$SKIN->td_header[] = array( "数据纪录", "10%" );
			$SKIN->td_header[] = array( "数据尺寸", "20%" );
			$SKIN->td_header[] = array( "索引尺寸", "20%" );
			$SKIN->td_header[] = array( "导出", "10%" );
			$SKIN->td_header[] = array( "<input name=\"allbox\" type=\"checkbox\" value=\"全部选中\" onClick=\"CheckAll();\">", "10%" );
			$ADMIN->html .= $SKIN->start_table( "华酷论坛数据表" );
			$DB->query( "SHOW TABLE STATUS FROM `".$INFO['sql_database']."`" );
			while ( $r = $DB->fetch_row( ) )
			{
				if ( !preg_match( "/^".$INFO['sql_tbl_prefix']."/", $r['Name'] ) )
				{
				}
				else
				{
					$idx_size += $r['Index_length'];
					$tbl_size += $r['Data_length'];
					$iBit = 0 < $r['Index_length'] ? 1 : 0;
					$tBit = 0 < $r['Data_length'] ? 1 : 0;
					$idx = $this->gen_size( $r['Index_length'], 3, $iBit );
					$tbl = $this->gen_size( $r['Data_length'], 3, $tBit );
					$ADMIN->html .= $SKIN->add_td_row( array(
						"<b><span style='font-size:12px'><a href='{$SKIN->base_url}&act=mysql&code=runsql&query=".urlencode( "SELECT * FROM {$r['Name']}" )."'>{$r['Name']}</a></span></b>",
						"<center>{$r['Rows']}</center>",
						"<div align='right'><span style='color:blue;font-size:12px'>{$tbl[0]} {$tbl[1]}</span></div>",
						"<div align='right'>{$idx[0]} {$idx[1]}</div>",
						"<center><a href='{$SKIN->base_url}&act=mysql&code=export_tbl&tbl={$r['Name']}'>导出</a></center></b>",
						"<center><input name=\"tbl_{$r['Name']}\" value=1 type='checkbox' onClick=\"CheckCheckAll();\"></center>"
					) );
				}
			}
			$total = $idx_size + $tbl_size;
			$iBit = 0 < $idx_size ? 1 : 0;
			$tBit = 0 < $tbl_size ? 1 : 0;
			$oBit = 0 < $total ? 1 : 0;
			$idx = $this->gen_size( $idx_size, 3, $iBit );
			$tbl = $this->gen_size( $tbl_size, 3, $tBit );
			$tot = $this->gen_size( $total, 3, $oBit );
			$ADMIN->html .= $SKIN->add_td_row( array(
				"&nbsp;",
				"<div align='right'>共:(<b>{$tot[0]} {$tot[1]}</b>)</div>",
				"<div align='right'><b>{$tbl[0]} {$tbl[1]}</b></div>",
				"<div align='right'><b>{$idx[0]} {$idx[1]}</b></div>",
				"&nbsp;"
			) );
		}
		else
		{
			$SKIN->td_header[] = array( "数据表", "60%" );
			$SKIN->td_header[] = array( "数据记录", "30%" );
			$SKIN->td_header[] = array( "<input name=\"allbox\" type=\"checkbox\" value=\"全部选中\" onClick=\"CheckAll();\">", "10%" );
			$ADMIN->html .= $SKIN->start_table( "华酷论坛数据表" );
			$tables = $DB->get_table_names( );
			foreach ( $tables as $tbl )
			{
				if ( !preg_match( "/^".$INFO['sql_tbl_prefix']."/", $tbl ) )
				{
				}
				else
				{
					$DB->query( "SELECT COUNT(*) AS Rows FROM {$tbl}" );
					$cnt = $DB->fetch_row( );
					$ADMIN->html .= $SKIN->add_td_row( array(
						"<b><span style='font-size:12px'>{$tbl}</span></b>",
						"<center>{$cnt['Rows']}</center>",
						"<center><input name='tbl_{$tbl}' type='checkbox' onClick=\"CheckCheckAll(this);\"></center>"
					) );
				}
			}
		}
		if ( $this->mysql_version < 32322 )
		{
			$ADMIN->html .= $SKIN->add_td_basic( "<select id='button' name='tool'>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<option value='optimize'>优化选择的数据表</option>\n\t\t\t\t\t\t\t\t\t\t\t\t  </select>\n\t\t\t\t\t\t\t\t\t\t\t\t <input type='submit' value='执行' id='button'></form>", "center", "tdrow2" );
		}
		else
		{
			$ADMIN->html .= $SKIN->add_td_basic( "<select id='button' name='tool'>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<option value='optimize'>优化选择的数据表</option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<option value='repair'>修复选择的数据表</option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<option value='check'>检查选择的数据表</option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<option value='analyze'>分析选择的数据表</option>\n\t\t\t\t\t\t\t\t\t\t\t\t  </select>\n\t\t\t\t\t\t\t\t\t\t\t\t <input type='submit' value='执行' id='button'></form>", "center", "tdrow2" );
		}
		$ADMIN->html .= $SKIN->end_table( );
		$ADMIN->html .= $SKIN->start_form( array(
			1 => array( "act", "mysql" ),
			2 => array( "code", "runsql" )
		) );
		$SKIN->td_header[] = array( "数据表", "30%" );
		$SKIN->td_header[] = array( "数据记录", "70%" );
		$ADMIN->html .= $SKIN->start_table( "运行 SQL 语句" );
		$ADMIN->html .= $SKIN->add_td_row( array(
			"<b>SQL 查询语句</b><br>高级用户使用",
			$SKIN->form_textarea( "query", "" )
		) );
		$ADMIN->html .= $SKIN->end_form( "运行 SQL 语句" );
		$ADMIN->html .= $SKIN->end_table( );
		$ADMIN->output( );
	}

	function gen_size( $val, $li, $sepa )
	{
		$sep = pow( 10, $sepa );
		$li = pow( 10, $li );
		$retval = $val;
		$unit = "Bytes";
		if ( $li * 1000000 <= $val )
		{
			$val = round( $val / ( 1073741824 / $sep ) ) / $sep;
			$unit = "GB";
		}
		else if ( $li * 1000 <= $val )
		{
			$val = round( $val / ( 1048576 / $sep ) ) / $sep;
			$unit = "MB";
		}
		else if ( $li <= $val )
		{
			$val = round( $val / ( 1024 / $sep ) ) / $sep;
			$unit = "KB";
		}
		if ( $unit != "Bytes" )
		{
			$retval = number_format( $val, $sepa, ".", "," );
		}
		else
		{
			$retval = number_format( $val, 0, ".", "," );
		}
		return array(
			$retval,
			$unit
		);
	}

	function gzip_four_chars( $val )
	{
		$i = 0;
		for ( ;	$i < 4;	++$i	)
		{
			$return .= chr( $val % 256 );
			$val = floor( $val / 256 );
		}
		return $return;
	}

}

@set_time_limit( 1200 );
ad_mysql( );
$idx = new ad_mysql( );
?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -