开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2349|回复: 4
打印 上一主题 下一主题
收起左侧

[Mysql] 求助 MYSQL如果表损坏 如何通过易语言修复?

[复制链接]
结帖率:23% (9/40)
跳转到指定楼层
楼主
发表于 2013-1-5 13:20:54 | 只看该作者 回帖奖励 |正序浏览 |阅读模式   福建省南平市
我试过用易语言的 执行SQL语句 这个命令来 执行   repair  table `qw_hotel`.`qw_zjlsz`    这条命令  可是修复不了

一定要进第三方数据库管理软件进行修复

求助
结帖率:76% (25/33)

签到天数: 1 天

地下
发表于 2013-1-5 14:08:21 | 只看该作者   广东省江门市
4l牛B人士呀。。。。
回复 支持 反对

使用道具 举报

结帖率:100% (14/14)
地板
发表于 2013-1-5 13:58:56 | 只看该作者   广东省广州市
楼上正解。。。。。。。
回复 支持 反对

使用道具 举报

结帖率:23% (9/40)
板凳
 楼主| 发表于 2013-1-5 13:40:31 | 只看该作者   福建省南平市
$result2=mysql_query("REPAIR TABLE $table");


这句  和我那句MYSQL是一样的   在易里面执行不行     有没有什么批处理之类的  开机时自动运行一次?
回复 支持 反对

使用道具 举报

结帖率:100% (10/10)

签到天数: 5 天

沙发
发表于 2013-1-5 13:31:32 | 只看该作者   广东省潮州市
自己研究一下PHP的代码吧,反正效果都是一样的。将其SQL语句取出来就OK了。
<?php
$dbuser="root";  //--->需要修改
$dbpw="";  //--->需要修改
$dbname="db_name"; //-->需要修改
//$table="search_profile";
mysql_connect($dbhost, $dbuser, $dbpw);
mysql_select_db($dbname);
if(!get_cfg_var("register_globals")) {
         foreach($HTTP_GET_VARS as $key => $val) {
                 $$key = $val;
         }
}
function checktable($table, $loops = 0) {
   global $db, $nohtml;
    $result = mysql_query("CHECK TABLE $table");
    if(!$nohtml) {
      echo "Checking table $table";
      echo "TableOperationTypeText";
    } else {
      echo "\n>>>>>>>>>>>>>Checking Table $table\n";
      echo "---------------------------------
\n";
    }
    $error = 0;
    while($r = mysql_fetch_row($result)) {
      if($r[2] == 'error') {
        if($r[3] == "The handler for the table doesn't support check/repair") {
          $r[2] = 'status';
          $r[3] = 'This table does not support check/repair/optimize';
          unset($bgcolor);
          $nooptimize = 1;
        } else {
          $error = 1;
          $bgcolor = 'red';
          unset($nooptimize);
        }
      } else {
        unset($bgcolor);
        unset($nooptimize);
      }
      if(!$nohtml) {
        echo "$r[0]$r[1]$r[2]$r[3]";
      } else {
        echo "$r[0] | $r[1] | $r[2] | $r[3]
\n";
      }
    }
    if($error) {
      if(!$nohtml) {
        echo "Repairing table $table";
      } else {
        echo ">>>>>>>>>>>>>Repairing Table $table
\n";
      }
      $result2=mysql_query("REPAIR TABLE $table");
      if($result2[3]!='OK')
        $bgcolor='red';
      else
        unset($bgcolor);
      if(!$nohtml) {
        echo "$result2[0]$result2[1]$result2[2]$result2[3]";
      } else {
        echo "$result2[0] | $result[1] | $result2[2] | $result2[3]
\n";
      }
    }
    if(($result2[3]=='OK'||!$error)&&!$nooptimize) {
      if(!$nohtml) {
        echo "Optimizing table $table";
      } else {
        echo ">>>>>>>>>>>>>Optimizing Table $table
\n";
      }
      $result3=mysql_query("OPTIMIZE TABLE $table");
      $error=0;
      while($r3=mysql_fetch_row($result3)) {
        if($r3[2]=='error') {
          $error=1;
          $bgcolor='red';
        } else {
          unset($bgcolor);
        }
        if(!$nohtml) {
          echo "$r3[0]$r3[1]$r3[2]$r3[3]";
        } else {
          echo "$r3[0] | $r3[1] | $r3[2] | $r3[3]
\n";
        }
      }
    }
    if($error&&$loops) {
      checktable($table,($loops-1));
    }
}
if($check) {
   $tables=mysql_query("SHOW TABLES");
   if(!$nohtml) {
     echo "";
   }
   if($iterations) {
     $iterations--;
   }
   while($table=mysql_fetch_row($tables)) {
      if(substr($table[0], -8) != 'sessions') {
        $answer=checktable($table[0],$iterations);
        if(!$nohtml) {
          echo "&nbsp;";
        }
        flush();
      }
   }
   if(!$nohtml) {
     echo "";
   }
} else {
   echo "Database Table Repair Utility for Discuz! (Require MySQL 3.23+)
".
        "This script will attempt to repair corrupted databases. While it can repair most common errors,
".
        "it can not repair everything. As a side benefit it will also optimize your tables.
".
        "This script was copyrighted by Jelsoft and modified by Crossday Studio to make it apply for Discuz!.
".
        "Usage:
".
        "iterations=x (x is the number of times you wish for the script to attempt to repair a broken table)
".
        "nohtml=1 (Output text only no html. Useful for cronjobs and you wish to receive text only)
".
        "check=1 (without this you will get this screen and no checking)
".
        "Example Usage:
".
        "repair.php?html=1&check=1 (most common usage, will check a forum and return html results)
".       "repair.php?check=1&iterations=5 (try to repair damaged tables 5 times)".
        "";
}
?>

点评

我也绝对好像用PHP可以实现 因为 myadmin 数据库管理貌似就是PHP的   江苏省南京市  发表于 2013-1-5 23:30
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表