繁体   English   中英

在 PHP 中导出 + 导入 PSQL 表

[英]Export + Import PSQL Table in PHP

我在 psql 中有一个语言表,看起来像这样。

在此处输入图片说明

我的目标是导出我的语言表并使用 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

进口

现在,我继续我的导入,这就是我所做的

shell_exec('psql -E -U postgres -d portal -c "COPY languages (code, text, nl, es, fr, created_at, updated_at) FROM \'/Applications/MAMP/htdocs/code/site/portal/public/csv/languages.csv\' DELIMITER \',\' csv;"');

我不断得到

ERROR:  invalid input syntax for integer: "1,h,Advanced Settings,Geavanceerde instellingen,Ajustes avanzados,Réglages avancés,2016-11-23 14:41:25,2016-11-23 14:41:25"

上下文:复制语言,第 1 行,列 id:“1,h,Advanced Settings,Geavanceerde instellingen,Ajustes avanzados,Réglages avancés,2016-11-23 14:4...”

我该如何解决这个问题? 我的导出命令有问题吗?

用于导入的 COPY 命令比 CSV 文件少一列。 它试图将您的updated_at列作为第二行的code字段。

表定义:

(code, text, nl, es, fr, created_at, updated_at)

行:

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

地图:

code - 1
text - "h"
nl - "Advanced Settings"
es - "Geavanceerde instellingen"
fr - "Ajustes avanzados"
created_at - "Réglages avancés"
updated_at - 2016-11-23 14:41:25
code2 - 2016-11-23 14:41:25 // <-- Problem

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM