49

我正在尝试使用 phpMyAdmin 将“.csv”文件放到 SQL 数据库中。但是,每当我导入它时,我都会收到错误消息:第 1 行的 CSV 输入中的列数无效。我整天都在尝试不同的选项来尝试让它工作但无济于事。我的 .csv 文件中正好有 47 列。我在我的 SQL 表中创建了 47 列。然而,这些名称与文件中的名称并不完全相同。每当我导入时,它总是给我那个错误。任何帮助将不胜感激!~Carpetfizz 我认为可能导致问题的一件事是第一列在我的 excel 文档中没有命名。这会导致问题吗?

编辑 12:30AM:phpMyAdmin 已经是可用的最新版本,通过(apt-get install phpmyadmin)(phpmyadmin 已经是最新版本)

A1中的空间

是 .csv 文件,如果有帮助的话。

4

14 回答 14

90

如果您的数据库表已经存在并且您不想在 CSV 文件中包含所有表的列,那么当您运行 PHP Admin Import 时,您需要填写 CSV 的格式特定选项中的列名字段 - 显示在以下屏幕截图的底部。

总之:

  • 选择一个 CSV 文件
  • 将格式设置为 CSV
  • 使用 CSV 中的列名称填写列名称字段
  • 如果您的 CSV 文件的第 1 行中列出了列名,请将“跳过此数量的查询(对于 SQL)或行(对于其他格式),从第一个开始”设置为 1

在此处输入图像描述

于 2015-06-23T22:32:42.943 回答
43

固定的!我基本上只是选择了“导入”,甚至没有自己制作表格。phpMyAdmin 从原始文档中为我创建了包含所有正确列名的表。

于 2013-04-27T15:29:08.813 回答
15

使用 phpMyAdmin 导入 .csv 文件时出现同样的错误。

我的问题的解决方案是我的计算机将 .csv 文件保存为 ; (分号)代替 ,(逗号)作为分隔符。

但是,在“格式特定选项”中,您可以选择“列分隔:”并选择 ; 而不是 ,(逗号)。

要查看您的计算机存储文件的位置,请在文本编辑器中打开 .csv 文件。

于 2015-07-06T19:17:20.337 回答
8

您将需要跳过第一行(定义列名的位置)并且您需要检查哪个“字符”正在分隔单元格(通常是,,但在我的情况下是;

波纹管是我的进口图片:

在此处输入图像描述

于 2018-07-15T09:40:24.037 回答
6

这实际上很容易修复,我最初在大约 10 年前在这里写了关于修复的文章https://ao.ms/phpmyadmin-invalid-field-count-in-csv-input-on-line-1/

您要做的是将“字段终止于”从“;”更改 到“,”,然后确保选择了“使用本地关键字”。

在此处输入图像描述

于 2020-01-27T10:43:25.533 回答
4

当遇到任何类型的输入文件错误时,编码问题很常见。

一个简单的解决方案可能是打开一个新文件,将 CSV 文本复制粘贴到其中,然后将其另存为新文件。

于 2018-05-02T21:30:20.197 回答
2

我刚刚遇到这个问题,并意识到有空列被视为具有值的列,我通过在文本编辑器中打开 CSV 看到了这一点。为了解决这个问题,我打开了我的电子表格并删除了最后一列之后的列,它们看起来完全是空的,但实际上并非如此。在我这样做之后,导入工作完美。

于 2014-09-18T13:54:28.207 回答
2

遇到了同样的问题并做了两个更改:(a) 没有覆盖现有数据(如果这是您的意图,则不理想,但您可以事先运行删除查询),以及 (b) 计算列并发现 csv 有一个空的列,因此即使所有“似乎”看起来都是正确的,回到你原来的工作总是值得的。

于 2016-03-12T12:46:14.270 回答
1

如果表已经创建,并且您懒得不指定字段名称输入中的列,那么您所要做的就是选择文件内容右侧的空列并删除它们。

于 2015-11-10T12:20:33.083 回答
0

您的解决方案似乎假设您希望创建一个全新的表。

但是,如果您想向已经存在的表添加内容,请查看表的结构并记下列数(id 列,如果您有一个仍然计数->即使它可能是自动递增/唯一的)

所以如果你的表看起来像这个 id Name Age Sex

确保您的 Excel 表格看起来像 A1 id B1 姓名 C1 年龄 D1 性别

现在他们都有4列。

同样在部分导入下,除了跳过查询数......增加数字以跳过相应的行。选择 1 将自动跳过第一行。对于那些可能在 excel 文件中有标题的人

于 2014-10-19T02:37:40.300 回答
0

我对 phpmyAdmin 有类似的问题。要导入的文件中的列数与目标数据库表中的列相匹配。我尝试导入 .csv 和 .ods 格式的文件都无济于事,出现了各种错误,包括一个认为列数错误的错误。

.csv 和 .ods 文件都是使用 LibreOffice 5.204 创建的。基于过去几年在导入问题方面的一些经验,我决定使用 gnumeric 电子表格重新制作文件,按照“严格”格式标准导出 .ods。瞧!没有更多的进口问题。虽然我没有时间进一步调查这个问题,但我怀疑 LibreOffice 文件输出的内部结构发生了一些变化。

于 2016-08-29T22:41:31.780 回答
0

我的数据库的最后一列(电子表格中的 F 列)未使用,因此为空。当我导入 excel CSV 文件时,出现“列数”错误。

这是因为 excel 只保存我使用的列。AE

在 F 的第一行添加一个 0 解决了问题,然后我在上传成功后将其删除。

希望这有助于并节省其他人的时间和脱发:)

于 2018-06-09T07:30:18.893 回答
0

我在 phpMyAdmin 中也遇到过这个问题。 使用 LOAD_DATA 而不是 LOAD 解决了这个问题

这些列是:

id,date,description,amount,payment_method 

id作为 AUTO_INCREMENT 主键。记录是这样的:

,2019-01-01,Car insurance for year 2019,321.00,bank

表编码是utf8_general_ci并且文件是utf-8编码的。

手动设置 column 的值时,LOAD 也失败id

于 2020-06-29T17:06:37.473 回答
0

将在 Microsoft Excel 中修复此错误的最愚蠢的事情(假设您实际上所有其他内容都正确):

在保存 CSV 之前,选择您的数据并单击 Excel 中的“全部边框”(在数据周围放置可视边框)。听起来毫无意义?我完全同意!但是,它将修复此错误。我每周至少使用这个技巧三次。

于 2018-07-29T22:15:37.120 回答