第1行phpmyadmin上CSV输入中的字段数无效

时间:2014-02-20 18:09:10

标签: csv import phpmyadmin

我已阅读了许多帖子但无法找到正确的具体答案。当我尝试将其他数据导入现有表时,我收到此错误消息。字段名称都正确对齐,但并非每一行都包含每个字段中的数据。例如,虽然我有一个名为middle_name的字段,但并不是每一行都有一个中间名。在导入过程中,此空白字段是否不计入字段,从而丢弃字段数?

我设法通过确保我有一个空白列来允许自动增加ID,以及将标题行保留在文件中但是选择1行跳过导入。

现在问题是最后一行不会导入 - 获取错误消息第19行上的CSV输入格式无效。当我将文件复制到Text Wrangler时,最后一行以,,,,,结束。这占最后5列为空白。我需要知道导入最后一行的诀窍是什么。

以下是我一直使用的设置:

Settings

6 个答案:

答案 0 :(得分:4)

从古老版本的phpMyAdmin升级后,我遇到了类似的问题(使用制表符分隔文件)。以下几点可能会有所帮助:

  • phpMyAdmin必须具有正确的列数。在较旧版本的phpMyAdmin中,您可以在行尾没有为列提供空值,但现在不再是这种情况了。
  • 如果将Excel文件导出为文本,并且行的开头或结尾处的列完全为空,则Excel不会导出这些行的空白。您需要放入一些内容,或留空,然后在带有正则表达式的文本编辑器中编辑生成的文件,例如:要添加空白的第一行,请搜索^并替换为,(CSV文件)或\t(标签文件);添加两列到最终搜索$并替换为,,\t\t等。
  • 在文件底部添加一个空行,以避免引用最后一行数据的错误消息。这似乎是bug,已在较新版本中得到修复。
  • 虽然在文本编辑器中,也检查文件编码,因为Excel有时会保存为带有BOM的UTF-16,这是phpMyAdmin不喜欢的。

答案 1 :(得分:2)

我尝试使用phpmyadmin将具有20,000行的csv文件导入Drupal 7中的自定义表时看到了同样的错误。我的csv文件没有标题,并且有一列有很多空白。

对我有用:我将数据从Excel复制到记事本(Windows纯文本编辑器)中,然后再回到新的Excel电子表格中,并将其重新保存为csv。我没有添加标题并将空白行留空。我做完之后一切都很顺利。

答案 2 :(得分:0)

只要您导入的CSV文件具有适当数量的空列,对于phpMyAdmin应该没有问题(看起来它可能基于您从上一行粘贴的逗号组)。

如何生成CSV文件?你能在电子表格程序中打开它来验证第19行的行数吗?

文件特别大吗? (在19行中,我无法想象它,但如果是这样,你可能会遇到PHP资源限制导致提前终止phpMyAdmin导入。)

答案 3 :(得分:0)

确保您尝试将表导入数据库而不是数据库>表

我有同样的问题,尝试了所有列出的内容,最后意识到我需要升级到数据库

答案 4 :(得分:0)

如果您将第一行保留为标题行,即使您的表已有标题,也不会出现此问题。您可以稍后删除额外的标题行。

为什么这会有所帮助,那么mysql知道有多少个单元可能包含数据,你不必填写虚拟数据或编辑csv或任何这些东西。

答案 5 :(得分:0)

我遇到了类似的问题,然后在Mysql Workbench中尝试了。 通过CSV文件轻松导入表格数据,并且我已经在MySQL Workbench中完美地完成了工作。