php - 通过命令行或 PHP 以 json 格式导出 mysql 数据库/mysql 表

标签 php mysql json

我有大信息表。我想以 json 格式导出它用于其他目的。我可以使用以下命令以 xml 格式导出。

mysql -u root -p --xml -e "SELECT * FROM db_name.tbl_name"> d:\export.xml

我尝试了类似下面的 json 格式。 mysql -u root -p --json -e "SELECT * FROM db_name.tbl_name"> d:\export.json

我收到错误消息 unknown option '--json'

PS:由于表太大,我无法使用任何第三方应用程序,如 PHPMyadmin/workbench/SQLyog。

如果你能帮助我,我将不胜感激。

最佳答案

mysql无法直接输出json格式

所以你有两个选择:

  1. 以 XML 导出,使用工具将 XML 转换为 JSON(当然是可以处理大表的工具)

  2. 编写一个小脚本(例如在 PHP 中)从数据库中获取数据并将其写入 JSON 文件

重要提示:

如果您选择选项 nr。 (2) 如果您有很多记录,您可能无法在单个“原子”步骤中加载整个表数据、转换为 JSON 并保存到文件。

但是您可以将任务分解为多个步骤。

基本上,转换为 JSON 的表是一个对象数组,每个对象代表一条记录。

  1. 打开数据库连接

  2. 开始写入输出文件并通过写入左方括号[

    打开数组
  3. 执行您的查询,一次获取 n ( 1 < n < 1000 ) 条记录。 (为了做到这一点,您必须按任何字段SORT 表 - 例如。id - 并使用 LIMIT 子句)

  4. json_econde转换每条记录,将字符串写入文件,写一个逗号,除非你写了最后一条记录。

  5. 返回3,直到到达最后一条记录。

  6. 将右方括号写入文件 ](关闭数组)。

  7. 关闭文件和数据库连接

这需要更多的编码,但这不是火箭科学。

...也许您会在网上找到一些已经这样做的东西。

更新:

可以在 GitHub 上的此处找到从数据库获取数据并将其写入 JSON 文件的脚本:Dump-table-to-JSON (最后更新于 2016 年)。

关于php - 通过命令行或 PHP 以 json 格式导出 mysql 数据库/mysql 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40102747/

相关文章:

php - ' fatal error 无法创建锁定文件 : Bad file descriptor (9)' while running php artisan server

php - 在 PHP 中将日期添加到 $Date

java - Dropwizard Json pretty-print 查询参数

PHPMailer:发送电子邮件....要求收据?

mysql - 只显示一个参数的分组方法

mysql - 如何查看MySQL选择了哪些分区?

php - 使用 php 未在 mysql(0000-00-00) 中输入日期

jquery - 如何压缩json文件

javascript - D3 - 查找具有相同数据的 SVG 元素

php - 在插件元素 CakePHP 3 中获取当前插件名称