http://www.perlmonks.org?node_id=6625


in reply to RE: Re: Reading from a file and writing the content into a database
in thread Reading from a file and writing the content into a database

You may want to try and download DBI, simply because it's good. But I'll try and give you some pointers with what you're using.

For one thing, you build the @statements array but you never actually use it! Is this a test version that you have here, or what? The data won't get into the database without you actually calling the insert statements on the db. From quickly scanning the docs, it looks like you'd call the "Sql" method for each of your insert statements. So:

for my $sql (@statements) { $db->Sql($sql); }
Another thing: if you have a file with comma-delimited fields, why aren't you split-ing each line of the file somehow? I highly doubt that you actually want to insert the comma-separated string into the database verbatim... do you?

With that in mind, you'll have to create a table in the database that reflects the layout of your comma-delimited file, so that you can split the line, then insert each field into its appropriate field in the db.

Also, in your SQL statements:

push @statement, "INSERT INTO UserTestingE (ID) VALUES (\t$_\n)";
Why do you have the "\t" and "\n" values? Do you actually want those in your db fields? Also, you need to quote the value:
push @statement, "INSERT INTO UserTestingE (ID) VALUES ('\t$_\n')";
Else you'll get a SQL error, I think. W/r/t the quoting, you'd be better off using some built-in method to quote values (like built-in to Win32::ODBC), but I didn't see one when I looked at the docs.