哪位达人 帮帮忙 修改下现在的代码 备份mysql的 php代码 要求备份到本地
我用网上流传的php 备份mysql数据的代码,文章标题是:备份mysql数据库的php代码(一个表一个文件)。代码最下面贴出来
但现在只能备份到虚拟主机的目录,现在我需要只备份到本地目录, 例如 本地电脑 D盘某文件夹。 虚拟主机不做任何操作,因为我买的是收费的虚拟主机,长久开销不起,加上本人php初级阶段,稍微复杂的代码不会修改。
各位达人看能不能修改下代码,只要本地备份的。 或者不修改也可以给我提供下相同功能的代码文件,谢谢了。
- PHP code
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> <?php $cfg_dbhost ='127.0.0.1';//mysql主机 $cfg_dbname ='mydb';//数据库名 $cfg_dbuser ='root';//数据库用户名 $cfg_dbpwd ='root';//数据库用户密码 $cfg_db_language ='utf8';//数据库编码 class dbmysql{ public static $dbhost = 'localhost'; public static $dbname; public static $dbuser = 'root'; public static $dbpass; public static $charset = 'utf8'; public static $DB = null; public $querycount = 0; public function __construct() { self::$dbhost = $GLOBALS['cfg_dbhost']; self::$dbname = $GLOBALS['cfg_dbname']; self::$dbuser = $GLOBALS['cfg_dbuser']; self::$dbpass = $GLOBALS['cfg_dbpwd']; self::$charset= $GLOBALS['cfg_db_language']; self::connect(); } public function connect(){ self::$DB=mysql_connect(self::$dbhost,self::$dbuser,self::$dbpass); if(!self::$DB){ self::sqlError('无法连接服务器!'.self::mysqlerror);exit("无法连接服务器!");; } if(!mysql_select_db(self::$dbname)){ self::sqlError('无法连接数据库('.self::$dbname.')!'.self::mysqlerror);exit("无法连接数据库!"); } mysql_query("SET NAMES '".self::$charset."', character_set_client=binary, sql_mode='';",self::$DB); } private function mysqlerror(){ return mysql_error(); } public function getTablesName(){ $res = mysql_query('SHOW TABLES FROM '.self::$dbname,self::$DB); $tables=array(); while ($row=mysql_fetch_row($res))$tables[]=$row[0]; mysql_free_result($res); return $tables; } public function getFields($table){ $res=mysql_query('DESCRIBE '.$table,self::$DB); $tables=array(); while($row=mysql_fetch_row($res))$tables[]=$row[0]; mysql_free_result($res); return $tables; } public function fetch_array($sql){ $res=mysql_query($sql,self::$DB); $r=mysql_fetch_array($res); mysql_free_result($res); return $r; } public function fetch_assoc($sql){ $q3=mysql_query($sql,self::$DB); $ra=array(); while($data=mysql_fetch_assoc($q3)){ $ra[]=$data; } mysql_free_result($q3); return $ra; } private function sqlError($message='',$info ='',$sql=''){//保存错误信息到文件 echo "{".$message."<br/>DATE: ".date('Y-n-j H:i:s')."<br>ERROR: ".$info."<br>SQL: ".$sql."<br>}<br>"; } public function close(){ self::$DB =null; } public function __destruct() { self::close(); } } /*---class end*/ function makedir($dirpath){ if(!$dirpath) return 0; $dirpath=str_replace("\\","/",$dirpath); $mdir=""; foreach(explode("/",$dirpath) as $val){ $mdir.=$val."/"; if($val==".."||$val==".")continue; if(!is_dir($mdir)&&!file_exists($mdir)){ if(!@mkdir($mdir,0755)){ exit("创建目录 [".$mdir."]失败."); } } } return true; } function delDirAndFile($dirName){ if($handle=opendir($dirName)){ while(false!==($item = readdir($handle))){ if($item !="."&&$item!=".."){ if(is_dir( "$dirName/$item")){ delDirAndFile( "$dirName/$item"); }else{ unlink("$dirName/$item"); } } } closedir( $handle ); if( rmdir( $dirName ) )echo "成功删除目录: $dirName<br>\n"; } } function filein($filename="databak/",$table='',$mysql=''){ $fp = fopen($filename.'/'.$table.'.sql','w'); fputs($fp,$mysql); fclose($fp); } header("Content-Type:text/html;charset=utf-8"); $db=new dbmysql(); $table=$db->getTablesName(); $filename="databak/".date("Ymd"); $url=getcwd()."/databak/"; $handle = opendir($url); while(false!==($file = readdir($handle))){ if ($file!="."&&$file!=".."&&is_dir($url."/".$file)) { if(date("Ymd")-$file>5){delDirAndFile($url."/".$file);}; } } makedir($filename); foreach($table as $t){ $s1=$db->fetch_array("show create table `$t`"); $mysql="/*Time:".date("Y-m-d H:i:s")." */\r\nDROP TABLE IF EXISTS `$t`;\r\n".$s1['Create Table'].";\r\n\r\n"; $a1=$db->fetch_assoc("select * from `$t`"); foreach ($a1 as $data){ $vals=array_values($data); $vals=array_map('addslashes',$vals); $vals=join("','",$vals); $vals="'".$vals."'"; $mysql.="INSERT INTO `$t` VALUES ($vals);\r\n"; } $mysql.="\r\n"; filein($filename,$t,$mysql); } echo "数据备份成功,生成备份文件 ".getcwd()."/".$filename."/<br>程序自动清理5天以前的备份"; ?> <div class="clear"> </div>

TooptimizePHPcodeforreducedmemoryusageandexecutiontime,followthesesteps:1)Usereferencesinsteadofcopyinglargedatastructurestoreducememoryconsumption.2)LeveragePHP'sbuilt-infunctionslikearray_mapforfasterexecution.3)Implementcachingmechanisms,suchasAPC

PHPisusedforsendingemailsduetoitsintegrationwithservermailservicesandexternalSMTPproviders,automatingnotificationsandmarketingcampaigns.1)SetupyourPHPenvironmentwithawebserverandPHP,ensuringthemailfunctionisenabled.2)UseabasicscriptwithPHP'smailfunct

The best way to send emails is to use the PHPMailer library. 1) Using the mail() function is simple but unreliable, which may cause emails to enter spam or cannot be delivered. 2) PHPMailer provides better control and reliability, and supports HTML mail, attachments and SMTP authentication. 3) Make sure SMTP settings are configured correctly and encryption (such as STARTTLS or SSL/TLS) is used to enhance security. 4) For large amounts of emails, consider using a mail queue system to optimize performance.

CustomheadersandadvancedfeaturesinPHPemailenhancefunctionalityandreliability.1)Customheadersaddmetadatafortrackingandcategorization.2)HTMLemailsallowformattingandinteractivity.3)AttachmentscanbesentusinglibrarieslikePHPMailer.4)SMTPauthenticationimpr

Sending mail using PHP and SMTP can be achieved through the PHPMailer library. 1) Install and configure PHPMailer, 2) Set SMTP server details, 3) Define the email content, 4) Send emails and handle errors. Use this method to ensure the reliability and security of emails.

ThebestapproachforsendingemailsinPHPisusingthePHPMailerlibraryduetoitsreliability,featurerichness,andeaseofuse.PHPMailersupportsSMTP,providesdetailederrorhandling,allowssendingHTMLandplaintextemails,supportsattachments,andenhancessecurity.Foroptimalu

The reason for using Dependency Injection (DI) is that it promotes loose coupling, testability, and maintainability of the code. 1) Use constructor to inject dependencies, 2) Avoid using service locators, 3) Use dependency injection containers to manage dependencies, 4) Improve testability through injecting dependencies, 5) Avoid over-injection dependencies, 6) Consider the impact of DI on performance.

PHPperformancetuningiscrucialbecauseitenhancesspeedandefficiency,whicharevitalforwebapplications.1)CachingwithAPCureducesdatabaseloadandimprovesresponsetimes.2)Optimizingdatabasequeriesbyselectingnecessarycolumnsandusingindexingspeedsupdataretrieval.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

Atom editor mac version download
The most popular open source editor
