【问题标题】:Import CSV file into MySQL using phpMyAdmin使用 phpMyAdmin 将 CSV 文件导入 MySQL
【发布时间】:2014-07-12 00:24:47
【问题描述】:

我已经搜索并阅读了许多关于使用phpMyAdmin 2.8.0.1 将 CSV 文件导入 MySQL 数据库的帖子/文章,它们听起来很简单,实际上并非如此。我所做的一切都无法正常工作。

我有一个包含 2 列的表,均定义为 NOT NULL。主索引配置为使用两列。我有许多 CSV 文件要导入,但我先从小文件开始。这是我的 CSV 数据文件的示例:

type    description
T   Antarctic Territory
T   Dependency
T   Independent State
T   Proto Dependency
T   Proto Independent State

只有 17 行要导入,但通常会插入 0 行,有时会插入 1 行,但格式错误。我的意思是第 1 列是空白的,第 2 列包含两列的数据,顺序错误。这是我的导入尝试生成的 SQL:

LOAD DATA LOCAL INFILE '/var/php_sessions/uploads/phpiptDPV' REPLACE INTO TABLE `country_types`
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\r\n'
IGNORE 1
LINES (
`type` ,
`description`
)# MySQL returned an empty result set (i.e. zero rows).

谁能看出我哪里出错了?我花了几天时间研究和尝试不同的东西,但我已经准备好扔掉 phpMyAdmin。

【问题讨论】:

  • 似乎代码块没有正确显示。我的 CSV 是制表符分隔的,所以我在导入过程中使用了 \t。
  • 您的数据似乎是制表符分隔的,而不是逗号分隔的。您能确认一下吗?
  • 是的,CSV 文件是 TAB 分隔的。
  • 我发现了我的问题。 Excel 2003 生成的 CSV 文件在第一行的开头有一些奇怪的字符。我看不到它们,但它们出现在 SQL 导入错误消息中。我创建了一个新的 CSV 文件并将数据复制过来,然后导入工作。

标签: mysql csv phpmyadmin


【解决方案1】:

以下步骤对我有用。

  • 将文件导入虚拟数据库(即不要选择任何数据库)。

  • 点击导入并选择您要用来加载数据的适当 CSV 文件。

  • phpMyadmin 将创建一个数据库和一个适当的表来保存数据。

  • 点击导出并选择 SQL 格式

  • 您将下载一个 SQL 文件。

  • 该文件将具有适当的查询以将数据插入到您的表中。

确保更改默认表名和列名以匹配您的表名和列名。

【讨论】:

    【解决方案2】:

    我终于找到了一种从 Excel 导入到 phpMyAdmin 的简单可靠的方法。以 OpenDocument 电子表格格式保存在 Excel 中。以相同的格式导入 phpMyAdmin。噗,都在那里。它将列名设置为 A、B、C、... 等等,但除此之外它完美无缺。

    我刚刚又为自己节省了一天的时间来摆弄引号、转义符、尾随制表符、额外的回车、定界分隔符和专业的数据库摔跤。

    【讨论】:

      【解决方案3】:

      问题在于LOCAL。在这种情况下,有两个“本地”概念。您可能的意思是 CSV 文件位于您运行浏览器访问 phpMyAdmin 的工作站上。

      LOAD DATA LOCAL INFILE 语句正在运行 phpMyAdmin 的 Web 服务器上运行。所以它在网络服务器上寻找文件。当我尝试这个时,我得到了 phpMyAdmin 的错误输出:

      #7890 - Can't find file '/Users/billkarwin/t.csv'. 
      

      您可以尝试使用 phpMyAdmin 的导入功能。

      1. 选择您的餐桌。
      2. 点击导入标签。
      3. 点击选择文件按钮浏览到您的本地 csv 文件。
      4. 格式选择“CSV using LOAD DATA”。
      5. 选择其他格式特定选项
      6. 点击开始

      【讨论】:

      • 我尝试取消选中 LOCAL 关键字选项,但随后出现此错误:code#13 - Can't get stat of '/var/php_sessions/uploads/phpKnuoWl'(错误代码: 2)code.
      • 我只有 3 个导入选项:CSV、使用 LOAD DATA 和 SQL 的 CSV。我只尝试了前两个,我能想到的所有可能的设置,但没有任何效果。似乎您的屏幕截图比我的版本更新。我应该说我已经登录到我的网络主机并从控制面板使用 phpMyAdmin。我确实让文件上传通过 import 语句发生。我不自己上传文件。
      • 您使用的是 phpMyAdmin 版本 2.8.0.1,它于 2006 年 3 月 8 日发布。已经8岁多了!!从那时起已经修复了dozens of security holes。我会敦促您对您的虚拟主机施加一些压力以进行升级,或者转移到其他虚拟主机。
      • 我发现了我的问题。 Excel 2003 生成的 CSV 文件在第一行的开头有一些奇怪的字符。我看不到它们,但它们出现在 SQL 导入错误消息中。我创建了一个新的 CSV 文件并复制了数据,然后导入工作。
      猜你喜欢
      • 2013-05-03
      • 2013-05-11
      • 2013-07-21
      • 2012-10-07
      • 1970-01-01
      • 1970-01-01
      • 2012-07-10
      • 2012-09-10
      相关资源
      最近更新 更多