gpt4 book ai didi

php - 在纯 PHP5 中创建 MySQL 转储

转载 作者:可可西里 更新时间:2023-11-01 07:41:26 25 4
gpt4 key购买 nike

我正在为我的项目创建一个备份脚本,它将通过 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 dump\n");
}

/* 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 以使其更兼容并能够在其他服务器上使用它,在其他服务器上无法使用 system mysqldump.

我希望您知道不使用 150 个文件库的解决方案:)

您好,弗雷德里克

最佳答案

如果你真的必须这样做,那么在创建这样的脚本时,你应该考虑以下几个 mysql 查询:

SHOW TABLES - 返回所有数据库表名

SHOW CREATE TABLE table_name 返回用于创建表的 sql 查询

SHOW PROCEDURE STATUSSHOW FUNCTION STATUS - 返回存储过程和函数的列表

SHOW CREATE PROCEDURE procedure_nameSHOW CREATE FUNCTION function_name - 返回用于创建存储过程和函数的查询

其余的是常用的SELECTINSERT 查询。

关于php - 在纯 PHP5 中创建 MySQL 转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10873741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com