2016-12-01 5 views
-1

私はこのようなpsqlの言語テーブルを持っています。Export + PHPでのPSQLテーブルのインポート

enter image description here


私の目標は、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" 

CONTEXTを取得保管: COPY言語、行1、列ID: "1、h、詳細設定イングス、Geavanceerdeのinstellingen、Ajustes avanzados、Réglagesavancés、2016年11月23日14:4 ...」


質問私はこの問題を解決するにはどうすればよい

私のエクスポートコマンドで何か?

これをさらに詳しくデバッグするにはどうすればよいですか?


私はこの瞬間に何か提案があります。

これについてのヒント/提案/ヘルプは非常に高く評価されます!

答えて

1

インポート用のCOPYコマンドには、CSVファイルより1つ少ない列があります。 updated_at列を2行目のcodeフィールドとして取得しようとしています。

表のDEF:

(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 
+0

感謝。この '(id、code、text、nl、es、fr、created_at、updated_at)への更新は、今の魅力のように働いています。 – ihue

関連する問題