在下写的转 用户的 程序,发出来给你参考下吧! 悬赏才5分,真吝啬!
成都创新互联公司专业为企业提供泾源网站建设、泾源做网站、泾源网站设计、泾源网站制作等企业网站建设、网页设计与制作、泾源企业网站模板建站服务,10年泾源做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
$next = intval($_GET['start']);
if ($next == NULL)
{
$next = 0;
}
$x = new Mysql($conf['xoops']);
$u = new Mysql($conf['ucenter']);
$start = $num*$next;
$m = $num*($next+1);
echo 'p/pfont color="red"开始转换:第bfont color="blue"'.($start+1).'/font/b到bfont color="blue"'.$m.'/font/bbr/fonthr style="width:20%;" align="left" /';
//从xoops中提取数据
$sql = "SELECT `uid`,`uname`,`email`,`pass`,`user_regdate` FROM `{$xoops['prefix']}users` ORDER BY `uid` ASC LIMIT {$start},{$num}";
$rs = $x-oneRow($sql);
if(empty($rs)){
echo 'p/pfont color="blue"全部转换完毕/font';
die();
}
$result = $x-query($sql);
while ($x_data = mysql_fetch_array($result,MYSQL_ASSOC)){
$user = $x_data;
//从ucenter中读取数据
$sql = "SELECT `uid` FROM `".$ucenter['prefix']."members` WHERE `uid` = '".$user['uid']."' LIMIT 1";
$u_data = $u-oneRow($sql);
if(!empty($u_data)){
@$time_log = file_get_contents('uid_err_log.txt');
$time_log.="\r\n".'------------------------------------';
$time_log.="\r\n".'UID为'.$user['uid'].'的用户'.$user['uname'].'在Ucente中已经存在这个uid,可能已经转换过了。';
$time_log.="\r\n".'SQL语句:'.$sql;
$time_log.="\r\n".'------------------------------------';
@file_put_contents('uid_err_log.txt',$time_log);
}else{
$sql = "SELECT `uid` FROM `".$ucenter['prefix']."members` WHERE `username` = '".$user['uname']."' LIMIT 1";
$u_data = $u-oneRow($sql);
if (!empty($u_data)) {
echo 'br'.$user['uname'].'已经在Ucenter中存在了!/b';
@$time_log = file_get_contents('uid_err_log.txt');
$time_log.="\r\n".'------------------------------------';
$time_log.="\r\n".'UID为'.$user['uid'].',用户名为'.$user['uname'].'的用户在xoops中已经存在这个用户名,可能已经转换过了。';
$time_log.="\r\n".'SQL语句:'.$sql;
$time_log.="\r\n".'------------------------------------';
@file_put_contents('uid_err_log.txt',$time_log);
}
}
//向Ucenter中插入用户
$salt = substr(uniqid(rand()), -6);
$password = md5($user['pass'].$salt);
$sql = "INSERT INTO `".$ucenter['database']."`.`".$ucenter['prefix']."members` (`uid` ,`username` ,`password` ,`email` ,`myid` ,`myidkey` ,`regip` ,`regdate` ,`lastloginip` ,`lastlogintime` ,`salt` )
VALUES ('".$user['uid']."' , '".$user['uname']."', '".$password."', '".$user['email']."', '', '', '', '".$user['user_regdate']."', '0', '0', '".$salt."')";
if(!$u-query($sql)){
@$time_log = file_get_contents('insert_err_log.txt');
$time_log.="\r\n".'------------------------------------';
$time_log.="\r\n".'Ucenter插入新用户错误';
$time_log.="\r\n".'SQL语句:'.$sql;
$time_log.="\r\n".'------------------------------------';
@file_put_contents('insert_err_log.txt',$time_log);
}
continue;
}
$next+=1;
echo 'meta http-equiv="Refresh" content="2; url=x2u.php?start='.$next.'" /';
exit();
?
用phpmyadmin导出,然后在新空间导入。或者找他们的管理员帮你操作。
我想到的有三种思路吧
1.如果服务器允许mysqldump 并且没有禁止PHP的shell_exec()这个函数的话
直接在PHP里面执行mysqldump就可以了。
2.通过mysql_query('show tables')的返回值遍历每个表,循环对每个表使用查询语句
select * into outfile '路径/文件名' from 表名
缺点是这样得到的是纯数据,恢复数据的时候你需要额外再写脚本
3.同样通过show tables返回表名,遍历每个表,通过select 语句查询,然后逐条结果处理,比如手工添加drop table 和create table 以及insert into等等,然后再写入文件。这样得到的备份数据是比较接近mysqldump的结果的,各种工具都可以用来恢复数据。缺点是如果数据库太大的话,效率不好说
总之我不推荐用PHP来实现mysql数据的备份,如果可能的话还是用mysqldump吧
把A中的q1倒出来 mysqldump -uadmin1 -padmin111 Q1 Q1.sql
然后再B中新建Q2,create database Q2
应用Q2 use Q2
导入Q1 source Q1.sql
赋予用户 grant all privileges on Q2.* to 'admin2'@localhost identified by 'admin2222'
这样就可以了!