SetQuery("SHOW CREATE TABLE ".$dsql->dbName.".".$tablename);
$dsql->Execute('me');
$row2 = $dsql->GetArray('me',MYSQL_BOTH);
$ctinfo = $row2[1];
echo "
".trim($ctinfo)."";
}
exit();
}
//优化表
else if($dopost=="opimize")
{
CheckCSRF();
if(empty($tablename))
{
echo "没有指定表名!";
}
else
{
$rs = $dsql->ExecuteNoneQuery("OPTIMIZE TABLE `$tablename` ");
if($rs) echo "执行优化表: $tablename OK!";
else echo "执行优化表: $tablename 失败,原因是:".$dsql->GetError();
}
exit();
}
//优化全部表
else if($dopost=="opimizeAll")
{
CheckCSRF();
$dsql->SetQuery("SHOW TABLES");
$dsql->Execute('t');
while($row = $dsql->GetArray('t',MYSQL_BOTH))
{
$rs = $dsql->ExecuteNoneQuery("OPTIMIZE TABLE `{$row[0]}` ");
if($rs)
{
echo "优化表: {$row[0]} ok!
\r\n";
} else {
echo "优化表: {$row[0]} 失败! 原因是: ".$dsql->GetError()."
\r\n";
}
}
exit();
}
//修复表
else if($dopost=="repair")
{
CheckCSRF();
if(empty($tablename))
{
echo "没有指定表名!";
}
else
{
$rs = $dsql->ExecuteNoneQuery("REPAIR TABLE `$tablename` ");
if($rs) echo "修复表: $tablename OK!";
else echo "修复表: $tablename 失败,原因是:".$dsql->GetError();
}
exit();
}
//修复全部表
else if($dopost=="repairAll")
{
CheckCSRF();
$dsql->SetQuery("Show Tables");
$dsql->Execute('t');
while($row = $dsql->GetArray('t',MYSQL_BOTH))
{
$rs = $dsql->ExecuteNoneQuery("REPAIR TABLE `{$row[0]}` ");
if($rs)
{
echo "修复表: {$row[0]} ok!
\r\n";
} else {
echo "修复表: {$row[0]} 失败! 原因是: ".$dsql->GetError()."
\r\n";
}
}
exit();
}
//执行SQL语句
else if($dopost=="query")
{
CheckCSRF();
$sqlquery = trim(stripslashes($sqlquery));
if(preg_match("#drop(.*)table#i", $sqlquery) || preg_match("#drop(.*)database#", $sqlquery))
{
echo "删除'数据表'或'数据库'的语句不允许在这里执行。";
exit();
}
//运行查询语句
if(preg_match("#^select #i", $sqlquery))
{
$dsql->SetQuery($sqlquery);
$dsql->Execute();
if($dsql->GetTotalRow()<=0)
{
echo "运行SQL:{$sqlquery},无返回记录!";
}
else
{
echo "运行SQL:{$sqlquery},共有".$dsql->GetTotalRow()."条记录,最大返回100条!";
}
$j = 0;
while($row = $dsql->GetArray())
{
$j++;
if($j > 100)
{
break;
}
echo "
";
echo "记录:$j";
echo "
";
foreach($row as $k=>$v)
{
echo "{$k}:{$v}
\r\n";
}
}
exit();
}
if($querytype==2)
{
//普通的SQL语句
$sqlquery = str_replace("\r","",$sqlquery);
$sqls = preg_split("#;[ \t]{0,}\n#",$sqlquery);
$nerrCode = ""; $i=0;
foreach($sqls as $q)
{
$q = trim($q);
if($q=="")
{
continue;
}
$dsql->ExecuteNoneQuery($q);
$errCode = trim($dsql->GetError());
if($errCode=="")
{
$i++;
}
else
{
$nerrCode .= "执行: $q 出错,错误提示:".$errCode."
";
}
}
echo "成功执行{$i}个SQL语句!
";
echo $nerrCode;
}
else
{
$dsql->ExecuteNoneQuery($sqlquery);
$nerrCode = trim($dsql->GetError());
echo "成功执行1个SQL语句!
";
echo $nerrCode;
}
exit();
}
make_hash();
include DedeInclude('templets/sys_sql_query.htm');