在纯PHP5中创建MySQL转储
发布时间:2020-12-13 22:44:02 所属栏目:PHP教程 来源:网络整理
导读:我正在为我的项目创建一个备份脚本,该脚本将通过cron执行. 现在我正在使用: ?phpinclude("config.php");/* Misc */$pathtobackup = realpath('.');$backupfolder = realpath("backup");$sqlfilename = "SQLDUMP-".date("d-m-Y--H-i").".sql";$backupfilenam
我正在为我的项目创建一个备份脚本,该脚本将通过cron执行.
现在我正在使用: <?php include("config.php"); /* Misc */ $pathtobackup = realpath('.'); $backupfolder = realpath("backup"); $sqlfilename = "SQLDUMP-".date("d-m-Y--H-i").".sql"; $backupfilename = "BACKUP-".date("d-m-Y--H-i").".zip"; $backupfilepath = $backupfolder."/".$backupfilename; /* Systemcall */ exec("/usr/bin/mysqldump -u{$mysqluser} -p{$mysqlpw} -h {$mysqlserver} {$mysqldb}",$sqldata,$fp); $sqldump = implode("n",$sqldata); if ($fp!=0){ die("could not create mysql dumpn"); } /* Create Zip */ $zip = new ZipArchive(); if ($zip->open($backupfilepath,ZIPARCHIVE::CREATE)!==TRUE) { die("cannot open <{$backupfilepath}>n"); } $path = realpath('.'); $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($pathtobackup,FilesystemIterator::SKIP_DOTS)); foreach($iterator as $name=>$object){ $zip->addFile($name); } $zip->addFromString($sqlfilename,$sqldump); if ($zip->close()!==TRUE) { die("cannot write <{$backupfilepath}>n"); } ?> 但是我想用纯PHP创建MySQL Dump以使其更兼容并且能够在其他服务器上使用它,在那里无法使用系统和mysqldump. 我希望你知道一个使用150文件库的解决方案:) 问候, 解决方法
如果你真的必须这样做,那么在创建这样的脚本时你应该考虑几个mysql查询:
SHOW TABLES – 返回所有数据库表名 SHOW CREATE TABLE table_name返回用于创建表的sql查询 SHOW PROCEDURE STATUS和SHOW FUNCTION STATUS – 返回存储过程和函数列表 SHOW CREATE PROCEDURE procedure_name和SHOW CREATE FUNCTION function_name -return用于创建存储过程和函数的查询 其余的通常是SELECT和INSERT查询. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |