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
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();
Maybe you should use:
$array = array_map('str_getcsv', file('file.csv'));
You have more option to check variables.