我试图通过导入 .csv文件到MySQL表的 phpMyAdmin的

.csv文件由配管分离,格式化这样的:

data|d'ata|d'a"ta|dat"a|
data|"da"ta|data|da't'a|
dat'a|data|da"ta"|da'ta|

在数据中包含的报价。我有超过其中我收到该数据的格式没有控制 - 它是由第三方生成

问题是当有一个的 |随后双引号即可。我总是得到错误的“在线N CSV输入无效字段计数”。

我上传从导入页文件,使用Latin1的,CSV,通过终止|中,由”分离

我想刚才的更改“的包含在”字符,但我不断收到的“为CSV导入无效参数:通过圈地” 。我曾尝试过各种字符没有成功。

我怎么能告诉MySQL接受phpMyAdmin的这种格式?

设置这些表是在编写将使用上传gzip压缩的.csv文件来维护一个电子商务站点的目录中的程序中的第一步。

有帮助吗?

解决方案

我一直有在过去的几个小时,类似的问题,我终于得到了一个导入工作,所以我将分享我的解决方案,即使它可能无法帮助原始的海报。

短版本:结果 1。)如果Excel文件,保存为ODS(打开的文档的电子表格)格式。 1A)如果文件是某种文本格式的带分隔符(如原始的海报有),然后打开Excel,一旦Excel内部使用文件/打开来打开该文件。在那里,你将能够选择适当的分隔符来查看该文件。确保文件看起来没事,然后另存为ODS格式(和关闭文件)。

2)。打开在OpenOffice的计算值的文件(从Oracle /太阳免费下载)。 2A)按Ctrl-F打开查找对话框。点击更多选项,并确保“当前选择只有”未选中。 图2b)搜索双引号。如果你的文件没有,你可以跳过步骤4和5。点击 3)另存为 - >文本CSV。为UTF-8格式选择选项(按“U” 3次到那里快),选择“;” (分号)作为分隔符,并选择文本双引号。 4)如果在你的文件中找到在步骤2b,继续任何双引号,否则只是导入文件为CSV与phpMyAdmin(见第6步)。它应该工作。 5A)在Word中打开或任何其他文本编辑器,你可以做查找 - >全部替换结果。 5B)找到了三个连胜双引号的所有实例通过搜索“””(如果你发现任何,你甚至可能要搜索的4,5,6等,在一排,直到你拿出空)。 5C)替换“”,”与没有找到其他地方在您的CSV的占位符。我取而代之的是‘ABCDEFG’。 5D)查找 - >替换的“所有实例”(含\连续两个双引号)”(正斜杠和双引号)。 5E)查找 - >以\“”替换(或ABCDEFG的所有实例从步骤5c您选择的占位符)。 5c和这个步骤确保在一场刚刚文本报价划定月底前存在的任何报价都正确“逃脱”。 5F。)最后,保存文件,保存在UTF-8(或任何格式,你需要进口)。 6.A)在phpMyAdmin中,单击“导入”选项卡,单击“选择文件”按钮,然后选择刚才保存的文件。 图6b。)下的“导入文件的格式” CSV应选择。如果将列名第一行中,确保复选框被选中。最重要的是,“通过终止字段”应被设置为; (分号),“通过圈地”应设置为“(双引号),‘落荒而逃由’应设置为\(正斜杠)。你设置在你的文件通过以下步骤3中,如果通过以下步骤5a必要 - 5F

7。)点击“开始”,祈祷你不只是浪费一个小时。

现在的短版却变成了这么久,我将跳过长版本。

只要说,似乎有与通过phpmyadmin导入2点主要的问题。 1)有某种记忆的问题,防止大的Excel和ODS文件(多大大?还不确定)被导入。 2)无论是OpenOffice的,也不Excel中似乎保存的方式,是与phpMyAdmin相适应的CSV文件中。他们想逃跑用双引号双引号。 phpMyAdmin的希望双引号逃脱了别的东西,像正斜杠。

的第一个问题将有希望被固定在phpMyAdmin的更新(和/或Excel中导入附加“PHPExcel”)。 如果有更改保存为Excel的CSV格式或ODS文件转义字符的简单方法,或者如果phpMyAdmin的可以由兼容的格式(实际上应该是很容易的,第二个可能是固定的,只要有它执行相同找到替换我们进行手动上述裙双引号问题的操作)。

我希望这可以帮助别人,因为我花了3-4个小时发现这个解决方案,一个小时写在这里吧。我希望这不是太长,但我希望能帮助大家在专业知识的各级从零到whereveR I是(大概在0.1)。

其他提示

我发现,工作的黑客 - 我使用$作为字符“由封闭的”,一切都很好。由于这是一个欧洲的网站,我知道,他们永远不会在表中的内容使用它。

您可以通过在每一个“前添加\修改CSV文件吧?

您是否尝试过消隐读取和“落荒而逃通过”“通过圈地”的箱子?我没有使用phpMyAdmin的,但谷歌提出的他人已经与该方法成功。

您可以考虑只写自己的 LOAD DATA INFILE 查询,好像你需要一个无论如何,因为这个过程会在某一时刻的应用程序的一部分。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top