phpMyAdmin导出功能如何工作?

问题描述 投票:4回答:1

如果要创建一个与phpMyAdmin中的Export选项卡具有相同功能的PHP函数,该怎么办?我不知道是否有执行此操作的MySQL函数,或者phpMyAdmin是否只是手动构建导出文件(在SQL中)。没有外壳访问。仅使用PHP。

我尝试了mysqldump的文档,但这似乎需要使用shell。我不太确定那是什么,也许我的问题是:您如何使用shell?

我的愚蠢想法是允许非技术用户使用MySQL在一个服务器(例如本地主机)上构建站点,然后将站点,数据库以及所有内容导出到另一台服务器(例如,远程服务器)。

我想我在导入过程中非常清楚。

mysql phpmyadmin
1个回答
6
投票

您可以检查phpMyAdmin源代码(开源软件的优点)。检查库/export/sql.php脚本文件中的export.php脚本和支持功能。

总而言之,phpMyAdmin的作用是:

  • 获取给定数据库中的表的列表(SHOW TABLES FROM ...),
  • 获取每个表的创建查询(SHOW CREATE TABLE ...),
  • 解析并从中提取列定义,
  • 获取所有数据(SELECT * FROM ...)
  • 根据列数据构建查询。

我已经为自己的应用编写了类似的代码(出于备份目的,当phpMyAdmin的GPL许可不允许我使用它时,),但是我使用DESCRIBE来获取列定义。我认为他们宁愿解析SHOW CREATE TABLE输出,因为它包含比DESCRIBE输出更多的信息。

这种生成SQL语句的方法需要谨慎处理转义,但是它具有一定的灵活性,因为您可以转换类型,过滤或清理数据等。它比使用mysqldump和您应该注意不要消耗所有可用的内存(尽快写入,经常写入,不要将所有内容都保留在内存中)。

如果您要实现从服务器到服务器的迁移过程,也许可以通过一些shell脚本并直接调用mysqldump来完成,除非您将使用PHP进行所有操作。

© www.soinside.com 2019 - 2024. All rights reserved.