【问题标题】:Export a PSQL table in PHP在 PHP 中导出 PSQL 表
【发布时间】:2016-12-01 19:11:22
【问题描述】:

我在 psql 中有一个如下所示的语言表。


我的目标是导出我的 languages 表并使用 PHP 将其导入。

我试过了

PHP

导出

shell_exec('psql -E -U postgres -d portal -c "COPY languages TO \'/Applications/MAMP/htdocs/code/site/portal/public/csv/languages.csv\' DELIMITER \',\' "');

我的languages.csv 导出成功。

如果我打开它,里面有这个。

1,h,Advanced Settings,Geavanceerde instellingen,Ajustes avanzados,Réglages avancés,2016-11-23 14:41:25,2016-11-23 14:41:25

我的目标是让我的.csv 完全采用这种格式

1,'h','Advanced Settings','Geavanceerde instellingen','Ajustes avanzados','Réglages avancés','2016-11-23 14:41:25','2016-11-23 14:41:25'

因为这是psql接受唯一格式。


问题

如何调整我的 psql 命令来获得它?

使用 PHP 更新它是我唯一的选择?

【问题讨论】:

  • This 也许?
  • @Xorifelse:谢谢。我认为这让我非常接近,而无需使用 PHP 手动修改那些 csv。
  • 你救了我的生命伴侣 :D !!!
  • 天哪,你说使用 PHP 太棒了 ;-)
  • 不,我喜欢 PHP :) 但我只是不想采取额外的步骤 - 只是为了获得适用于 psql 数据库的正确格式。

标签: php mysql database psql


【解决方案1】:

看起来COPY 上的FORCE_QUOTE 选项可以包含要换行的列列表。见这里:SQL COPY

FORCE_QUOTE { ( column_name [, ...] ) | * }

这意味着您可以指定或默认执行所有操作,您可能希望指定您的 id 列未在示例中包含引号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-12
    • 2017-10-04
    • 2017-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多