PhpMyAdminを使用して、SQLデータベースに「.csv」ファイルを取得しようとしています。ただし、インポートするたびに、1行目のCSV入力の列数が無効ですというエラーが発生します。 .csvファイルには正確に47列あります。 SQLテーブルに47個の列を作成しました。ただし、名前はファイル内の名前とまったく同じではありません。インポートするたびに、エラーが表示され続けます。どんな助けも大歓迎です! 〜Carpetfizz私が問題を引き起こしていると思われることの1つは、最初の列の名前がExcel文書で何も指定されていないことです。これが問題を引き起こしている可能性がありますか?
編集12:30 AM:phpMyAdminは(apt-get install phpmyadmin)を介して利用可能な最新バージョンです(phpmyadminは既に最新バージョンです)
ここ は.csvファイルです(それが役立つ場合)。
一定!基本的に、自分でテーブルを作成することなく「インポート」を選択しました。 phpMyAdminは、すべての正しい列名を使用して、元のドキュメントからテーブルを作成しました。
DBテーブルが既に存在し、CSVファイルにすべてのテーブルの列を含めたくない場合は、PHP Admin Importを実行するときに、次の列名フィールドに入力する必要があります。 CSVの形式固有のオプション-次のスクリーンショットの下部に示されています。
要約すれば:
PhpMyAdminを使用して.csvファイルをインポートすると、同じエラーが発生しました。
私の問題の解決策は、コンピューターが.csvファイルを保存したことです; (セミコロン)、(コンマ)の代わりに区切り文字として。
ただし、形式固有のオプションでは、「列区切り:」を選択して;を選択できます。の代わりに、(コンマ)。
コンピューターがファイルを保存する場所を確認するには、テキストエディターで.csvファイルを開きます。
私はちょうどこの問題を抱えており、値を持つ列として扱われている空の列があることに気付きました。テキストエディタでCSVを開くと、これがわかりました。これを修正するために、スプレッドシートを開いて、最後の列の後の列を削除しました。完全に空に見えましたが、空ではありませんでした。これを行った後、インポートは完全に機能しました。
同じ問題があり、2つの変更を行った:(a)既存のデータを上書きしなかった(それが意図する場合は理想的ではないが、事前に削除クエリを実行できる場合)、および(b)列を数え、csvが空の列なので、すべての「見た目」が正しいように見えても、常に元の作業に戻るのに役立ちます。
任意のタイプの入力ファイルでエラーが発生した場合、エンコードの問題が一般的です。
簡単な解決策は、新しいファイルを開き、その中にCSVテキストを貼り付けてコピーし、それを新しいファイルとして保存することです。
PhpmyAdminでも同様の問題がありました。インポートするファイルの列数は、ターゲットデータベーステーブルの列と一致しました。 .csvと.odsの両方の形式でファイルをインポートしようとしましたが、列数が間違っていると主張するエラーなど、さまざまなエラーが発生しました。
.csvファイルと.odsファイルは両方ともLibreOffice 5.204で作成されました。過去数年間のインポートの問題に関する少しの経験に基づいて、「厳密な」フォーマット標準に準拠して.odsをエクスポートし、gnumericスプレッドシートでファイルを作り直すことにしました。出来上がり!インポートの問題はもうありません。この問題をさらに調査する時間はありませんでしたが、LibreOfficeのファイル出力の内部構造に何かが変わったのではないかと疑っています。
ソリューションは、まったく新しいテーブルを作成することを前提としているようです。
ただし、既存のテーブルにコンテンツを追加する場合は、テーブルの構造を検索し、列の数に注意してください(ID列、まだカウントがある場合は、自動インクリメント/一意であっても)
テーブルがこのIDのように見える場合、Name Age Sex
excelテーブルがA1 id B1 Name C1 Age D1 Sexのようになっていることを確認してください
そして今、彼らは両方とも4列を持っています。
また、部分インポートのすぐ下で、クエリの数をスキップします。..数を増やして適切な行をスキップします。 1を選択すると、最初の行が自動的にスキップされます。 Excelファイルにヘッダーがある人向け
テーブルがすでに作成されていて、フィールド名の入力に列を指定しないほど怠けていた場合、ファイルコンテンツの右側にある空の列を選択して削除するだけです。
Microsoft Excelのこのエラーを修正する最も愚かなこと(実際には他のすべてが正しいと仮定します):
データを選択し、CSVを保存する前にExcelで[すべての境界線]をクリックします(データの周囲に視覚的な境界線を配置します)。無意味な音?同意します!ただし、このエラーは修正されます。私はこのトリックを少なくとも週3回使用しています。
データベースの最後の列(スプレッドシートの列F)は使用されていないため、空です。 Excel CSVファイルをインポートすると、「列数」エラーが発生しました。
これは、Excelが使用している列のみを保存していたためです。 A-E
Fの最初の行に0を追加すると問題が解決し、アップロードが成功した後に削除しました。
これが他の誰かの時間と髪の損失を助け、救うことを願っています:)