mysql Invalid column count in CSV input while importing csv file

前端 未结 2 2002
误落风尘
误落风尘 2020-12-22 06:03

I have a table in the database called locations which contains 2 columns(id which is auto incremented , location) , And I have a csv c

相关标签:
2条回答
  • 2020-12-22 06:27

    If Java is supported in your machine, Use below solution

    https://dbisweb.wordpress.com/

    The simple configuration required to do is

    <?xml version="1.0" encoding="UTF-8"?>
    <config>
      <connections>
          <jdbc name="mysql">
              <driver>com.mysql.jdbc.Driver</driver>
              <url>jdbc:mysql://localhost:3306/test1</url>
              <user>root</user>
              <password></password>
          </jdbc>
      </connections>
      <component-flow>
          <execute name="file2table" enabled="true">
              <migrate>
                  <source>
                      <file delimiter="," header="false" path="D:/test_source.csv"/>
                  </source>
                  <destination>
                      <table connection="mysql">locations</table>
                  </destination>
                  <mapping>
                      <column source="1" destination="location" />
                  </mapping>
              </migrate>
          </execute>
      </component-flow>
    </config>
    

    If you are interested, Same can be achieved by Java code.

    Source source = new File("D:/test_source.csv", ',', false);
            Destination destination = new Table("locations", new JDBCConnection("com.mysql.jdbc.Driver", "jdbc:mysql://localhost:3306/test1", "root", ""));
            List<Mapping> mapping = new ArrayList<>();
            mapping.add(new Mapping("1", "location", null));
            Component component = new MigrateExecutor(source, destination, mapping);
            component.execute();
    
    0 讨论(0)
  • 2020-12-22 06:42

    Maybe you should use:

    $array = array_map('str_getcsv', file('file.csv'));
    

    You have more option to check variables.

    0 讨论(0)
提交回复
热议问题