$res = mysql_query($sql,$db_link)
$search = array()
$replace = array()
while($row = mysql_fetch_assoc($res)){
$search[] = $row['key1']
$replace[] = $row['key2']
}
$ftext = str_replace($search,$replace,$ftext)
有两种方法,一种方法使用mysql的check table和repair table 的sql语句,另一种方法是使用MySQL提供的多个myisamchk, isamchk数据检测恢复工具。前者使用起来比较简便。推荐使用。1. check table 和 repair table
登陆mysql 终端:
mysql -uxxxxx -p dbname
check table tabTest
如果出现的结果说Status是OK,则不用修复,如果有Error,可以用:
repair table tabTest
进行修复,修复之后可以在用check table命令来进行检查。在新版本的phpMyAdmin里面也可以使用check/repair的功能。
2. myisamchk, isamchk
其中myisamchk适用于MYISAM类型的数据表,而isamchk适用于ISAM类型的数据表。这两条命令的主要参数相同,一般新的系统都使用MYISAM作为缺省的数据表类型,这里以myisamchk为例子进行说明。当发现某个数据表出现问题时可以使用:
myisamchk tablename.MYI
进行检测,如果需要修复的话,可以使用:
myisamchk -of tablename.MYI
关于myisamchk的详细参数说明,可以参见它的使用帮助。需要注意的时在进行修改时必须确保MySQL服务器没有访问这个数据表,保险的情况下是最好在进行检测时把MySQL服务器Shutdown掉。
<?$host = "localhost" //主机名
$user = "root" //mysql用户名
$password = "" //mysql密码
$database = "doc" //mysql数据库名
$tables = "mclass" //表名
$conn=mysql_connect("$host","$user","$password") or die("数据库打开出错")
mysql_select_db("$database")
$query="select * from $tables"
$result=mysql_query($query,$conn)
$i=0
$j=0
while($row=mysql_fetch_row($result)){
$array[$i][$j] = $row[0].$row[1]
$array2[$i][$j] = $row[0]
$j++ // echo $i.",".$j.$row[1]."<br>"
if($j==3) {
$i++
$j=0
} //else {$j++ }
}
$amax=count($array)//获是数组内数据个数。
$rows=2 //设置列数
//开始显示数据
for ($x=0 $x<=$amax-1 $x++) {
for ($y=0 $y<= $rows $y++) {
echo "<a href=".$array2[$x][$y].">".$array[$x][$y]."</a>|"
}
echo "<p>"
}
/*
显示结果为
aaa|bbb|ccc
ddd|eee|fff
lll|mmm|nnn
.....
*/
?>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)