2013-04-27 25 views
21

".csv"ファイルをphpMyAdminでSQLデータベースに取得しようとしています。しかし、私はそれをインポートするたびにエラーが表示されます:1行目のCSV入力の列カウントが無効です。 私は一日中、さまざまなオプションを試して動作させていますが、役に立たなくしています。 .csvファイルには正確に47個の列があります。私は私のSQLテーブルに47列を作成しました。ただし、名前はファイル内の名前とまったく同じではありません。インポートするたびに、エラーが表示され続けます。 ご協力いただければ幸いです! 〜Carpetfizz 問題を引き起こしていると思われることの1つは、最初の列がExcel文書内に何も名前が付けられていないことでした。これは問題を引き起こす可能性がありますか?1行目のCSV入力の列カウントが無効です。エラー

EDIT 12:30 AM:(phpmyadminのインストールapt-getを)(phpmyadminのは、すでに最新バージョンです)

Space in A1

Hereは.csvファイルで使ってその場合のphpMyAdminは、すでに利用可能な最新バージョンです。助けてください。

+0

エラーが完全にあなたを導きます。 1行目には、mysqlテーブルで作成したカラム数よりも多くのカラムがあります。 – Amir

+0

これを行うためのコードは何ですか、おそらくそれも、最初の列に名前を与えてから、 – mukund

+0

@Amirにそれを指摘してくれたことを教えてください。私が作成していないスプレッドシートでは、列番号は47から89にスキップされ、青で強調表示されています。ここに画面があります:http://i.imgur.com/IJmTZGO.png – Carpetfizz

答えて

29

修正済み!私は基本的にはテーブルを自分で作ることなく "インポート"を選択しました。 phpMyAdminは元の文書からすべての右の列名を持つ私のためのテーブルを作成しました。

+5

また、あなたと同じ問題が発生しました。私はあなたと同じようにそれを修正しましたが、重要な細部は除外しました。 「インポート」をクリックすると、データベースのテーブルが** NOT **に選択されていることを確認します。データベース名は** SHOULD **を選択してください。 – Crt

1

私はちょうどこの問題を抱え、空の列が値の列として扱われていることを認識したので、私はテキストエディタでCSVを開くことでこれを見ました。これを修正するために、スプレッドシートを開いて最後の列の後に列を削除したところ、完全に空に見えましたが、そうではありませんでした。私がこれをした後、輸入は完全に働いた。

0

あなたのソリューションはまったく新しいテーブルを作成したいと思われるようです。

ただし、既存のテーブルにコンテンツを追加する場合は、テーブルの構造を調べて、列数をメモしてください(ID列がある場合は、カウントが自動増分/ユニーク)

あなたはテーブルがこの ID名前年齢性別

のように見えるのであれば、あなたのExcelの表が A1のID B1名前C1年齢D1セックス

のように見え、今、彼らの両方が4列を持っていることを確認してください。

はまた、右部分インポートの下で、クエリの数をスキップ横に....適切な行をスキップする回数を増やします。 1を選択すると、最初の行が自動的にスキップされます。エクセルファイルにヘッダーが含まれている場合

35

DBテーブルがすでに存在し、CSVファイルにすべてのテーブルの列を含めたくない場合は、PHP Admin Importを実行するときに入力する必要がありますCSV用の書式固有オプションの列名フィールド - 次のスクリーンショットの一番下に表示されます。要約すると

  • は、CSVは、CSVファイル場合はCSV
  • にフォーマットがあなたのCSV
  • の列の名前と列名フィールドに入力設定し
  • ファイル選択してください行1に列名がリストされており、「最初の行から始まるこの数のSQL()」または「1行目から始まる行をスキップする」と設定されています。

enter image description here

+1

は正解とマークする必要があります。列名について言及する必要があります。 – Ans

+1

あなたが '.CSV'ファイルに異なる数のカラムを持っているなら、私にとって最善の解決策です。 –

+1

作業ソリューション...ありがとう! – deemi

7

phpMyAdminを使用して.csvファイルをインポートするときに同じエラーが発生しました。

私の問題の解決策は、コンピュータが.csvファイルを保存していたことでした。 (セミコロン)を区切り記号(カンマ)ではなく区切り記号として使用します。

しかし、書式固有のオプションでは、 "columns separated:"を選択して選択することができます。 、(カンマ)の代わりに。

コンピュータがファイルを格納する場所を確認するには、.csvファイルをテキストエディタで開きます。

0

テーブルがすでに作成されていて、フィールド名入力に列を指定できないほど怠惰だった場合、ファイルコンテンツの右側の空の列を選択して削除するだけです。

1

(a)既存のデータを上書きせず(あなたの意図であれば理想的ではありませんが、事前に削除クエリを実行できます)、(b)列を数えて見つけましたcsvには空の列があるため、すべてが正しいと思われるにもかかわらず、元の作業に戻ることが常に必要です。

0

私はphpmyAdminで同様の問題がありました。インポートするファイルの列数は、ターゲットデータベーステーブルの列と一致します。 .csv形式と.ods形式の両方でファイルをインポートしようとしましたが、列数が間違っていると主張するなど、さまざまなエラーが発生しました。

.csvファイルと.odsファイルは、どちらもLibreOffice 5.204で作成されています。過去数年間の輸入問題の経験に基づいて、私はgnumericスプレッドシートでファイルをリメイクし、.odsを "厳密な"フォーマット標準に準拠してエクスポートすることに決めました。 Voila!これ以上輸入の問題はありません。問題をさらに調査する時間はありませんでしたが、私はLibreOfficeのファイル出力の内部構造が変わったと考えています。

関連する問題