感谢:转http://www.cnfos.com/?p=543
验证了一下!
<? $dbhost = "localhost"; //数据库主机名 $dbuser = "root"; //数据库用户名 $dbpass = "123456"; //数据库密码 $dbname = "test"; //数据库名 /***************************************** * *可获得数据库的结构、数据、视图、触发器、存储过程 * ******************************************/ $comm_dir = "d:/APMServ5.2.6/MySQL5.1/bin/";//mysqldump所在路径:mysql/bin $command= "mysqldump -u$dbuser -p$dbpass --default-character-set=utf8 --opt --triggers -R -x $dbname";//备份命令,这个应该更不错。。。为什么没有变绿色
//"mysqldump --add-drop-table -u$dbuser -p$dbpass db5>1.sql";//备份命令
$file_dir = "D:/APMServ5.2.6/www/htdocs/backupfile/";//备份文件路径 $file_name = date("Yms-His").".sql";//备份文件名 $link = @mysql_connect($dbhost,$dbuser,$dbpass) or die ('Could not connect to server.');//连接数据库 mysql_query("use uco",$link); mysql_query("set names utf8",$link); exec($comm_dir.$command.'>'.$file_dir.$file_name,$arr,$i);//执行备份命令 ?>
原文:
用php写一个数据备份的功能。他的做法是使用php的exec函数执行mysqldump命令,进行备份。代码:
<?php exec( ‘mysqldump -uroot -p123456 mysqldb>d:/bak/1.sql’, $arr, $i ); echo $i; ?>
如果成功页面应该输出0的,可是一直输出1,目录下也生成文件1.sql了,但是0字节,空的。
我在自己电脑上执行,没有问题,可是我的是linux系统。和系统有关系?
重启电脑切换到win下,遇到的情况和同事一样,正在思索,想到了会不会是路径的问题,改写命令如下:
<?php exec(‘d:/mysql5/bin/mysqldump mysqldb>d:/bak/1.sql’,$arr,$i); echo $i ?>
果然,输出0,而且d:/bak目录下生成的1.sql文件也有内容了。