Diff for /loncom/interface/lonmysql.pm between versions 1.22 and 1.24

version 1.22, 2004/07/21 21:14:36 version 1.24, 2004/08/20 01:27:05
Line 619  Returns: Line 619  Returns:
 sub create_table {  sub create_table {
     return undef if (!defined(&connect_to_db($dbh)));      return undef if (!defined(&connect_to_db($dbh)));
     my ($table_des)=@_;      my ($table_des)=@_;
     my $request = &build_table_creation_request($table_des);      my ($request,$table_id) = &build_table_creation_request($table_des);
     #      #
     # Execute the request to create the table      # Execute the request to create the table
     #############################################      #############################################
Line 629  sub create_table { Line 629  sub create_table {
             $dbh->errstr();              $dbh->errstr();
         return undef;          return undef;
     }      }
     #  
     # Set up the internal bookkeeping  
     #############################################  
     my $table_id;  
     if (exists($table_des->{'id'})) {  
         $table_id = $table_des->{'id'};  
     } else {  
         $table_id = &get_new_table_id();  
     }  
     my $tablename = &translate_id($table_id);      my $tablename = &translate_id($table_id);
     delete($Tables{$tablename}) if (exists($Tables{$tablename}));      delete($Tables{$tablename}) if (exists($Tables{$tablename}));
     return undef if (! defined(&update_table_info($table_id)));      return undef if (! defined(&update_table_info($table_id)));
Line 770  sub build_table_creation_request { Line 761  sub build_table_creation_request {
         $request.="COMMENT = 'temporary' ";          $request.="COMMENT = 'temporary' ";
     }       } 
     $request .= "TYPE=MYISAM";      $request .= "TYPE=MYISAM";
     return $request;      return $request,$table_id;
 }  }
   
 ###############################  ###############################
Line 901  sub store_row { Line 892  sub store_row {
     return 1;      return 1;
 }  }
   
   
   ###############################
   
   =pod
   
   =item &bulk_store_rows()
   
   Inputs: table id, [columns],[[row data1].[row data2],...]
   
   returns undef on error, 1 on success.
   
   =cut
   
   ###############################
   sub bulk_store_rows {
       my ($table_id,$columns,$rows) = @_;
       # 
       return undef if (! defined(&connect_to_db()));
       my $dbh = &get_dbh();
       return undef if (! defined($dbh));
       my $table_status = &check_table($table_id);
       return undef if (! defined($table_status));
       if (! $table_status) {
           $errorstring = "table $table_id does not exist.";
           return undef;
       }
       #
       my $tablename = &translate_id($table_id);
       #
       my $request = 'INSERT IGNORE INTO '.$tablename.' ';
       if (defined($columns) && ref($columns) eq 'ARRAY') {
           $request .= join(',',@$columns).' ';
       }
       if (! defined($rows) || ref($rows) ne 'ARRAY') {
           $errorstring = "no input rows given.";
           return undef;
       }
       $request .= 'VALUES ';
       foreach my $row (@$rows) {
           # avoid doing row stuff here...
           $request .= '('.join(',',@$row).'),';
       }
       $request =~ s/,$//;
       $dbh->do($request);
       if ($dbh->err) {
           $errorstring = 'Attempted '.$/.$request.$/.'Got error '.$dbh->errstr();
           return undef;
       }
       return 1;
   }
   
   
 ###############################  ###############################
   
 =pod  =pod

Removed from v.1.22  
changed lines
  Added in v.1.24


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>