mysql crashed
function check_table($table){ require dirname(__file__) .'/connection.php'; mysql_select_db(news,$db); $ret = mysql_query(show table status where `name` = '.$table.'); while($row = mysql_fetch_array($ret)){ if($row['engine']!='myisam'){ $wrong=1; } } if($wrong){ mysql_query(repair table .$table); } mysql_close($db); $wrong=$ret=$row=null;}
上面的代码是不是可以检查数据表是否crashed?
crashed的数据表是不是 $row['engine'] = null?
没找到相关的文章,求助各位前辈。
回复讨论(解决方案) 13.5.2.6. repair table语法
repair [local | no_write_to_binlog] table
tbl_name [, tbl_name] ... [quick] [extended] [use_frm]
repair table用于修复被破坏的表。默认情况下,repair table与myisamchk --recover tbl_name具有相同的效果。repair table 对myisam和archive表起作用。
而你却是在 !='myisam' 的条件下执行 repair table
13.5.2.6. repair table语法
repair [local | no_write_to_binlog] table
tbl_name [, tbl_name] ... [quick] [extended] [use_frm]
repair table用于修复被破坏的表。默认情况下,repair table与myisamchk --recover tbl_name具有相同的效果。repair table 对myisam和archive表起作用。
而你却是在 !='myisam' 的条件下执行 repair table
数据表格式为myisam,当数据表错误时,在phpmyadmin里显示表的状态为in use。
那么,怎么样的mysql语句,可以检查数据表错误,然后执行repair table语句?
谢谢。
好像应该是
if($row[collation]=='in use'){
对吗?