Nik Belajcic wrote:

This may be a silly question, but I am wondering if there is something
opposite to:

@row = $sth->fetchrow_array

In other words, instead of fetching rows from MySQL and loading them
into an array that can be accessed from Perl, I want to do the opposite
- take a Perl (associative) array and load it into MySQL table.
I know I could dump it into a text file and read it from there, but
assuming I do not want to go through this intermediary step, how could I
do it?


Any suggestions appreciated.


No there is not, but I urge to to implement it :)

You can do something like:

my %record; # Your record in memory you want in the table. It obviously needs to be filled

my $sql_1;
my $sql_2;
my $sql_3;
my $tablename = "MyTable"; # TODO: Set this another way?

foreach my $key (keys %record) {
   $sql_1 .= "$key, ";
   $sql_2 .= "?, ";
   $sql_3 .= %record{$key} . ", ";
}

# Chop off the trailing comma and space
$sql_1 = substr($sql_1, 0, length($sql_1)-2);
$sql_2 = substr($sql_2, 0, length($sql_2)-2);
$sql_3 = substr($sql_3, 0, length($sql_3)-2);


my $sth = $dbh->prepare("insert into $tablename ( $sql_1 ) values ( $sql_2 )");


$sth->execute($sql_3);


CAUTIONARY NOTE!!!!!!

I'm just learning Perl myself. The above code is NOT tested.
But you should be able to get the idea anyway :)

--
Daniel Kasak
IT Developer
NUS Consulting Group
Level 5, 77 Pacific Highway
North Sydney, NSW, Australia 2060
T: (+61) 2 9922-7676 / F: (+61) 2 9922 7989
email: [EMAIL PROTECTED]
website: http://www.nusconsulting.com.au

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to