【问题标题】:How i can import a file(csv/excel) with partial data to table in database through phpmyadmin?如何通过 phpmyadmin 将带有部分数据的文件(csv/excel)导入数据库中的表?
【发布时间】:2010-10-21 08:02:36
【问题描述】:

我需要我的客户更新信息来填写客户表。

我将我想要的表格导出到一个 excel 文件,并要求他们填写新信息(这只是我需要更新的一列),他们已将文件发回给我。

现在我想将该信息导入回我的表格列。
多次试错,转成csv的excel文件,通过phpmyadmin导入。

但它没有更新任何列。

我做错了什么?

【问题讨论】:

    标签: php mysql phpmyadmin


    【解决方案1】:

    如果您只需要从 CSV 数据生成 UPDATE 语句,您可能想看看我的 FOSS CSV 工具,CSVFix,它可以做到这一点以及更多,而无需编写任何代码、PHP 或否则。

    【讨论】:

    • 嗨,尼尔,谢谢!我看了一下,但它可以更新一列有 1700 行吗?在我看来,我必须逐行更新..
    • 它为 CSV 数据文件中的每一行生成一个 SQL UPDATE - 这就是 SQl 的工作原理,恐怕 :-)
    • @dutraveller,phpMyAdmin 也会逐行进行查询,但这没有任何区别。 SQL 旨在处理数百个查询 :)
    【解决方案2】:

    如果你有一个 .csv 文件并且你知道一些 PHP,你可以编写一个循环遍历文件并插入/更新数据库中的记录的脚本。

    例如,假设您的 csv 中的每一行的结构如下:

    id,name,address,email,date
    

    例如:

    1,bob smith,344 abc street,test@example.com,2009-04-01
    

    你可以这样循环:

    <?php
    $data=file_get_contents('your-file.csv');
    //Split the file and get an array representing the lines/rows in the .csv
    $rows=explode("\n",$data); 
    
    foreach ($rows as $row)
    {
    
       //Remove any excess whitespace from start and end of the row:
       $row=trim($row);
       $id=$row[0];
       $name=$row[1];
       $address=$row[2];
       $email=$row[3];
       $date=$row[4];
       mysql_query("UPDATE TABLE SET name='$name',....);
    }
    ?>
    

    【讨论】:

    • 还会有where子句吗?
    【解决方案3】:

    PHP 有一个名为 fgetcsv() 的函数来解析 CSV 文件。

    您可以使用它来循环浏览您的 CSV 文件并创建 MySQL 更新字符串。您可以通过 mysql_query() 执行,或者只是复制并粘贴到 PHPMyAdmin 的查询窗口中。

    【讨论】:

      猜你喜欢
      • 2018-01-04
      • 2014-12-13
      • 1970-01-01
      • 2013-04-26
      • 2014-08-06
      • 2013-12-17
      • 1970-01-01
      • 1970-01-01
      • 2020-07-14
      相关资源
      最近更新 更多