All that in order to achieve opening of all files one-by-one and inserting each of the filename and its corresponding content as an entry in mysql table 'articles'#=========== INSERTING MULTIPLE FILENAMES & CONTENTS INTO DATABASE === +========== my $data; my $insert = $db->prepare( 'INSERT INTO articles (title, body) VALUES +(?, ?)' ); my @files = glob "$ENV{'DOCUMENT_ROOT'}/data/text/*.txt"; foreach (@files) { open FILE, "$_" or die $!; $_ = map m{([^/]+)\.txt}, $_; #Strip out of the string th path +and extension leaving only the filename intact $data = <FILE>; #Grab the whole file contents at +once $insert->execute($_, $data) or print $db->errstr; close FILE; }
update:
After running this test script:
i noticed 2 errors i cannot solve:foreach (@files) { open FILE, "$_" or die $!; print "$_", br() x3; $_ = map m{([^/]+)\.txt}, $_; #Strip out of the string the path + and extension leaving only the filename intact print "$_", br() x3; $data = <FILE>; #Grab the whole file contents at +once print "$data"; exit; close FILE; }
a) The '$_' doesn't hold the value of the current filename opened without paths and extension but instead it has the number of '1' in it. Its a syntax error obviously that i have made and don't know how to properly write it.
b) @data though it is correct because it contains the contents of each file when looping and contents are stored by me in utf8 when i write the text files
But although i'm not striping out the filename correctly, even if i was, i will still need to re-encode the filename to utf8 before inserting into the database because filenames are greek-iso.
i can do that as Encode::from_to($_, 'ISO-8859-7', 'utf-8') but the question is will i have to or the $insert->execute($_, $data); will do that automatic for me before inserting the values in the db?
In reply to Re^6: Error in insertion of MULTIPLE FILENAMES & CONTENTS INTO DATABASE
by Nik
in thread Error in insertion of MULTIPLE FILENAMES & CONTENTS INTO DATABASE
by Nik
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |