使用 .php 文件生成 MySQL 转储

新手上路,请多包涵

这是我掌握的信息:

我正在使用基于 Linux 的系统使用 MySQL 和 PHP5。我需要能够从 .php 文件中生成 mysqldump ,然后将该转储存储在服务器上我指定位置的文件中。

由于我是一个 PHP 菜鸟,我希望有人给我一些帮助、指导或代码,这将满足我的要求。这必须从 Internet 远程运行。

原文由 Thomas Ward 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 389
2 个回答

您可以使用 exec() 函数执行外部命令。

注意:在 shell_exec()exec() 之间,我会选择第二个,它不会将输出返回给 PHP 脚本——不需要 PHP 脚本来获取整个 SQL转储为字符串:您只需将其写入文件,这可以通过命令本身来完成。

该外部命令将:

  • 使用正确的参数调用 mysqldump
  • 并将输出重定向到文件。

例如 :

 mysqldump --user=... --password=... --host=... DB_NAME > /path/to/output/file.sql

这意味着您的 PHP 代码将如下所示:

 exec('mysqldump --user=... --password=... --host=... DB_NAME > /path/to/output/file.sql');

当然,由您决定使用正确的连接信息,将 ... 替换为那些。

原文由 Pascal MARTIN 发布,翻译遵循 CC BY-SA 3.0 许可协议

以上代码都不适合我。我正在使用窗户。下面的代码对我有用……

 $sql = "SELECT * FROM  $tableName WHERE yourclause";
$result = $conn->query($sql);

if($result){

        if ($result->num_rows > 0) {

            $myfile = fopen("daily_events_$district.sql", "w") or die("Unable to open file!");

            while($row = $result->fetch_assoc()) {

                $rowToString = implode("','",$row);
                $writeToFile = "INSERT INTO $tableName VALUES('$rowToString');". PHP_EOL;
                fwrite($myfile,$writeToFile);
            }
            echo "File saved successfully";
        }
    } else {
        echo "No result found";
    }

这将根据您的查询将文件保存在您的项目文件夹中您想要的任何数据。

原文由 swarnim dixit 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题