【问题标题】:emulating phpMyAdmin Export function模拟 phpMyAdmin 导出功能
【发布时间】:2012-08-16 17:16:46
【问题描述】:

当您从 phpMyAdmin 导出数据库时,它会返回一个 SQL 文件,其中包含创建表查询以及当前存储的所有表数据和信息。

我想创建一个按钮,将其下载到用户的文件中。

这可能吗,如果可以,怎么办?

【问题讨论】:

  • 如,您想授予用户导出完整数据库的权限 - 但无法访问 phpmyadmin?如果是这样,请查看命令行工具 mysqldump 和 PHP 的 exec

标签: php mysql database phpmyadmin export


【解决方案1】:

您使用 mime 类型的标题,它会建议用户下载文件并输出“动态创建”的 sql 插入代码,该代码将创建整个表。

header("Content-type: application/octet-stream");
header("Content-type: application/force-download");

您应该能够使用PDO's get column meta 来获取初始生成表 SQL 的列类型。

输出如下:

<?php
$select = $DB->query('SELECT COUNT(*) FROM fruit');
$meta = $select->getColumnMeta(0);
var_dump($meta);
?>

array(6) {
  ["native_type"]=>
  string(7) "integer"
  ["flags"]=>
  array(0) {
  }
  ["name"]=>
  string(8) "COUNT(*)"
  ["len"]=>
  int(-1)
  ["precision"]=>
  int(0)
  ["pdo_type"]=>
  int(2)
}

然后查询数据库并使用返回的数据为初始查询返回的每一行生成插入语句。

【讨论】:

  • 或者只使用 mysqldump 并且不要重新发明轮子 ;)
猜你喜欢
  • 2012-04-10
  • 1970-01-01
  • 2012-07-08
  • 1970-01-01
  • 2013-02-16
  • 1970-01-01
  • 2019-07-22
  • 2021-11-22
相关资源
最近更新 更多