Technical Stuffs

Invalid field count in csv input on line 1

When importing CSV data into my MySQL database using PHPMyAdmin, I found following error: Invalid field count in csv input on line 1.

It’s odd since I’ve manually count field numbers and compared with column on my CSV files, they’re exactly match.

Then I found something strange. PHPMyAdmin is automatically use semicolon ( ; ) as field delimiter instead of comma ( , ). Quick fix for this problem is to change the delimiter symbol manually.

phpMyAdmin screenshot

In the picture above, I replaced semicolon (rounded with blue circle) with comma and everything is alright.

38 Comments

  1. mh

    it’s not a bug, it follow old excel csv pattern

  2. jport

    Thanks! This really helped alot. Spent a good while trying to find problem, and its something as small as this.

    Thanks again

  3. ndal….kowe kie mbahas opo tho?

  4. @mh
    Thanks for your acknowledgement 😉

    @jport
    nice to hear that 🙂

  5. WOW thanks for the info, i uploaded a csv files successfully because of your advise. Great job!

  6. sopo yo.admine..salam kenal..
    sopo = siapa
    admine = administratornya

  7. detnot

    ember jeng

  8. Ayden

    you’ve got no idea how much you just helped me out right here!

    Thanks a million!

  9. yudhi

    hehehe, biasanya itu dari mysql lama ke mysql baru.

  10. Gangadhara

    Nice post, it is working fine.

  11. James Bayley

    Thank you, thank you, thank you!

    I’d been pulling out my hair for two hours until I stumbled upon your site.

    Comma vs. semicolon… phew – I didn’t spot that. Amazing what grief one pixel’s difference can cause.

    phpMyAdmin can go stuff its semicolon right up its last two syllables of the aforementioned punctuation mark.

    Terima kasih banyak

  12. Alan

    Thank you. I have been looking all day on the web trying to get an answer. My upload worked fine.

    Cheers,

    Alan

  13. thank you so much ,helped me a lot . .

  14. Thanks, This had been driving me mad for some time!

  15. MK

    Wow to think PHP used to not do this and does now.

    This is stupid and the sheer number of posts i have seen of users with this problem i can’t believe they did soemthing so stupid just to maintain the old excel standard, clearly CSV stands for COMMA separated value.

  16. this just saved me a whole bunch of time

  17. sunny

    thanks, it saved my time.

    Sunny.

  18. alay

    SESAT LOhh

  19. Floris

    In my CSV file the fields were surrounded by ” (double quotes).
    Please be sure there are no double quotes INSIDE THE FIELDS. Open your CSV file in Excel or scalc (openoffice suite):
    – In scalc go to Edit > Find /Replace
    – In Excel follow this steps: http://support.microsoft.com/kb/288291

    Replace all the ” (double quotes) with ‘ (single quotes).

    Another problem was with the DATETIME fields in MYSQL. In scalc select them all and right-click on them > Format Cells > and put “JJ-MM-DD UU:MM:SS” in the Format code box.

    I’m only allowed to have in MYSQL first the year, then the month and then the day. For example “2009-12-29”.

    After following these steps it worked for me.

    And BTW, if there are still problems, open your CSV with Notepad or another text editor and check if every line has the right count of fields.

  20. Thanks a lot, saved a lot of time

  21. Lindsey

    Wow, thanks for this… I was going insane 🙂 x

  22. Juan

    Thank you very much, sooo simple!

  23. Vivek

    Hi,

    its relay Great!

    its helped me alot.

    really Thanks….
    Thanks….
    Thanks….
    Thanks….
    Thanks….
    Thanks….

    vivek
    CHPL pune

  24. Ali

    i have same problem but still unable to solve it as per your above instructions

  25. M

    I have funded best solution

    First of all open CSV file in Microsoft Excel and save it again with new name then

    To solve this I had to do the following:

    Import
    Browse for your csv file.
    Select CSV using LOAD DATA (rather than just CSV)
    Change “Fields terminated by” from “;” to “,”
    Make sure “Use LOCAL keyword” is selected.
    Click “Go”

  26. Cheers for this, really saved my ass

  27. Frank

    The above problem is probably due to the Windows default setting in Regional Settings (Control Panel) for the CSV file separator. It seems the USA and UK use different default values.

  28. Excellent tip, you solved my problem instantly with CSV imports!

  29. Another useful trick, when you’re having problems importing an Access table, is to open up the file in TextPad (or some other editor) and examine your data. You’ll probably find many errors. For instance if you have ” in your text field you’ll have to change it something else. I find that Access search and replace can be a little tempermental, so simply telling Access to replace the ” with a ^ doesn’t always work as expected.

  30. Maggie

    Cool Stuff!!!

  31. Great job, I got this when trying to upload a csv database after editing it, I thought I broke it lol.

    Thanks!

  32. BGJ

    Floris: Thanks!

  33. Scott

    I’ve tried everything you said but only the first row out of 142 rows gets inserted. I also have this issue. I have 8 columns A thru H.
    In the DB the first field is Product_ID and its set to auto increment. Even only after only one row being inserted the data in the CSV file does not transfer over to the same DB fields as they should (out of sync). Very frustrated.

  34. Thank’s a lot for decision of the problem. It’s work!

  35. meksi

    Thanks a billion!

  36. Thanks! I also had trouble with uploading a CSV created in Excel, but removing quotation mark in ‘Fields enclosed by’ field I was able to fix it.

    Thanks again!

  37. VERY helpful thanks. I kept getting errors! This worked perfectly.

    Thanks again,
    Mike

  38. Thank

    oh .. thank you so much ^^” .. i try to solve this problem by myself very long time

Leave a Reply