高分请教这个sql语句怎么在php中实现!?急!!

zunyir 2004-07-09 03:40:57
我想备份我的mysql数据库,用
mysqldump -u username -p password dbname>data.sql
语句。
但我不知道怎么在php上用这个语句,请哪位知道的大侠告诉一下。不胜感谢。如果有更好的方法也说一说。
...全文
112 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
pwtitle 2004-07-23
看看我的。你把PW_*变量改成你自己的就可以了。呵呵。
在win下应该把mysqldump.exe和mysql.exe拷贝到当前目录下。


<?
$backup_dir = "backup"; //备份文件所在目录
$file = $_GET['file'];
if($_SERVER['REQUEST_METHOD']=="POST"){
switch(PW_DB_TYPE){
case "mysql":
$datadir = getcwd();
$filename = date("Y-m-d_H_i_s",time()).".sql";
if (substr(PHP_OS, 0, 3) == 'WIN'){
$cmd = getcwd()."\\mysqldump.exe --tables -u ".PW_DB_USER." -p".PW_DB_PASS." -r $datadir\\backup\\$filename --no-create-db --add-locks --opt --add-locks -c ".PW_DB_NAME;
}else{

$cmd = "/usr/local/bin/mysqldump --tables -u ".PW_DB_USER." -p".PW_DB_PASS." -r $datadir/backup/$filename --no-create-db --add-locks --opt --add-locks -c ".PW_DB_NAME;
}
str_replace("\\","/",$cmd);
set_time_limit(0);

shell_exec($cmd);
//passthru($cmd);
break;
default:
echo "不能备份";
break;
}
}

// 删除备份
if( ($_GET['op']=="DEL")&&($_GET['file']!="") ) {
@unlink($backup_dir."/".$_GET['file']);
}

// 恢复数据
if( ($_GET['op']=="BACKUP")&&($_GET['file']!="") ){
if (substr(PHP_OS, 0, 3) == 'WIN'){
$cmd=getcwd()."\\mysql.exe -u ".PW_DB_USER." -p".PW_DB_PASS." -D ".PW_DB_NAME." <$backup_dir\\$file";
}else{
$cmd="/usr/local/bin/mysql -u ".PW_DB_USER." -p".PW_DB_PASS." -D ".PW_DB_NAME." <$backup_dir/$file";
}
str_replace("\\","/",$cmd);
set_time_limit(0);
shell_exec($cmd);
//passthru($cmd);
?>
<SCRIPT LANGUAGE="JavaScript">
alert("数据恢复成功!");
</SCRIPT>
<?
}
?>
回复
zunyir 2004-07-23
呵呵……
请问在别人服务器里也能这样用??!!
回复
mistjin 2004-07-19
打错了,上面的guestbook是你的数据库的名字
如果你想具体导出数据库中的某个表的话在数据库后面加表名就可以了

e.g.

exec('C:/Mysql/bin/mysqldump -u root -pPassWord database table > C:/Mysql/bin/data.sql');
回复
mistjin 2004-07-19
exec('C:/Mysql/bin/mysqldump -u root -pPassWord guestbook > C:/Mysql/bin/data.sql'); //存放的路径跟mysqldump的路径一定要指明
回复
52juanjuan 2004-07-19
通过system() 或者exec()执行外部的数据库备份命令应该差不多了.
回复
zunyir 2004-07-19
就没有人说了吗??
可是100分啊。
回复
zunyir 2004-07-09
但我得到的data.sql的大小为0字节,不知道为什么!???
回复
ezdevelop 2004-07-09
一样的道理
回复
zunyir 2004-07-09
你好厉害,也说说恢复吧!
回复
ezdevelop 2004-07-09
system('mysqldump -u username -p password dbname>data.sql');
回复
相关推荐
综教楼后的那个坑用双向链表实现 描述   在 LIT 综教楼后有一个深坑,关于这个坑的来历,有很多种不同的说法。其中一种说法是,在很多年以前,这个坑就已经在那里了。这种说法也被大多数人认可,这是因为该坑有一种特别的结构,想要人工建造是有相当困难的。   从横截面图来看,坑底成阶梯状,由从左至右的 1..N 个的平面构成(其中 1 ≤ N ≤ 100,000),如图:    *            * :    *            * :    *            * 8    *    **      * 7    *    **      * 6    *    **      * 5    *    ********* 4 <- 高度    *    ********* 3    ************** 2    ************** 1 平面 |  1  |2|   3    | 每个平面 i 可以用两个数字来描述,即它的宽度 Wi 和高度 Hi,其中 1 ≤ Wi ≤ 1,000、1 ≤ Hi ≤ 1,000,000,而这个坑最特别的地方在于坑底每个平面的高度都是不同的。每到夏天,雨水会把坑填满,而在其它的季节,则需要通过人工灌水的方式把坑填满。灌水点设在坑底位置最低的那个平面,每分钟灌水量为一个单位(即高度和宽度均为 1)。随着水位的增长,水自然会向其它平面扩散,当水将某平面覆盖且水高达到一个单位时,就认为该平面被水覆盖了。   请你计算每个平面被水覆盖的时间。    灌水 水满后自动扩散 | | * | * * | * * * * V * * V * * * * * * .... * *~~~~~~~~~~~~* * ** * *~~~~** : * *~~~~**~~~~~~* * ** * *~~~~** : * *~~~~**~~~~~~* * ** * *~~~~**~~~~~~* *~~~~**~~~~~~* * ********* *~~~~********* *~~~~********* *~~~~********* *~~~~********* *~~~~********* ************** ************** ************** ************** ************** **************    4 分钟后    26 分钟后        50 分钟后    平面 1 被水覆盖     平面 3 被水覆盖    平面 2 被水覆盖输入   输入的第一行是一个整数 N,表示平面的数量。从第二行开始的 N 行上分别有两个整数,分别表示平面的宽度和高度。 输出   输出每个平面被水覆盖的时间。
发帖
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2004-07-09 03:40
社区公告
暂无公告