Hi, I have a problem with my code. As I'm trying to extract the date before I insert the data into a table using sql code. I'm trying to extract data from a string to get the date, using the array function. The problem is that when it runs it only takes the first row of the file and going into an infinite loop inserting the 1st row. Any ideas why is doing this ? how can I get the date for each row inserted to the table ?
$csv = Text::CSV->new(); while (<FILE>) { if ($count ==0) { } else { $status = $csv->parse($_); @data = $csv->fields(); $done=0; $retry=0; while($done==0) { # convert timestamp to date @timestamp = split (" ",$data[7]); $day=$timestamp[2]; $month1=$timestamp[1]; $month = $mon2num{lc substr($month1,0,3)}; $year=$timestamp[5]; $date = "$day/$month/$year"; $query = " INSERT INTO DigitalB_Master (date +,julianday,mac_address,enterprise_id,enterprise_name,group_id ,group_ +name,device_name ,device_type) ". " Values ('$date','$jd','$data[6]', +'$data[0]','$data[1]','$data[2]','$data[3]','$data[4]', '$data[5]')" +. " ON DUPLICATE KEY UPDATE ". "enterprise_id='$data[0]',". "enterprise_name='$data[1]',". "group_id='$data[2]',". "group_name='$data[3]',". "device_name='$data[4]',". "device_type='$data[5]';"; print ($query."\n"); my $sth = $dbh->prepare($query); $sth->execute();
In reply to Perl Array issue. by Pan20
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |