在任何地方找不到我的问题的好答案。如果我想要创建一个 php 函数,该函数与phpMyAdmin中的Export选项卡完全相同,我该怎么办呢?我不知道是否有一个mysql函数可以执行此操作,或者phpMyAdmin是否只是手动构建导出文件(在SQL中)。没有shell访问权限。只是使用PHP。我尝试了mysqldump的文档,但这似乎需要使用shell(我不太确定它甚至是什么 - 也许我的问题是你怎么用shell?)。
我的愚蠢想法(不是全部吗?)是允许非技术用户使用MySQL在一台服务器(比如localhost)上构建一个站点,然后将站点,数据库和所有站点导出到另一台服务器(例如。远程服务器。)
我想我对导入过程非常清楚。请帮忙。
答案 0 :(得分:5)
您可以查看phpMyAdmin源代码(开源软件的一个优点)。检查export.php脚本和libraries / export / sql.php脚本文件中的支持函数。
总之,phpMyAdmin的作用是:
我为自己的应用程序编写了类似的代码(用于备份,当phpMyAdmin的GPL许可证不允许我使用它时),但我使用DESCRIBE来获取列定义。我认为他们宁愿解析SHOW CREATE TABLE输出,因为它包含的信息比DESCRIBE输出更多。
这种生成SQL语句的方法需要一点小心处理转义但它允许一些灵活性,因为你可以转换类型,过滤或清理数据等。它也比使用像mysqldump这样的工具慢很多并且你应该注意不要消耗所有可用的内存(写得很快,经常写,不要把所有内容都留在内存中)。
如果要实现迁移过程(从服务器到服务器),可能更容易使用一些shell脚本并直接调用mysqldump,除非您将使用PHP完成所有操作。