--- loncom/interface/lonmysql.pm 2005/04/11 15:33:46 1.30 +++ loncom/interface/lonmysql.pm 2005/08/24 19:33:32 1.35 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # MySQL utility functions # -# $Id: lonmysql.pm,v 1.30 2005/04/11 15:33:46 albertel Exp $ +# $Id: lonmysql.pm,v 1.35 2005/08/24 19:33:32 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -37,6 +37,7 @@ use Apache::lonnet; my $mysqluser; my $mysqlpassword; my $mysqldatabase; +my %db_config; sub set_mysql_user_and_password { # If we are running under Apache and LONCAPA, use the LON-CAPA @@ -375,6 +376,22 @@ sub connect_to_db { return undef; } $debugstring = "Successfully connected to loncapa database."; + # Determine DB configuration + undef(%db_config); + my $sth = $dbh->prepare("SHOW VARIABLES"); + $sth->execute(); + if ($sth->err()) { + $debugstring = "Unable to retrieve db config variables"; + return undef; + } + foreach my $row (@{$sth->fetchall_arrayref}) { + $db_config{$row->[0]} = $row->[1]; + } + #&Apache::lonnet::logthis("MySQL configuration variables"); + #while (my ($k,$v) = each(%db_config)) { + # &Apache::lonnet::logthis(" '$k' => '$v'"); + #} + # return 1; } @@ -478,7 +495,6 @@ Be careful. ############################### sub get_dbh { return undef if (! defined(&connect_to_db())); - &Apache::lonnet::logthis("reconnect set to ".$dbh->{mysql_auto_reconnect}); return $dbh; } @@ -555,10 +571,6 @@ sub update_table_info { # # Get MySQLs table status information. # - my @tabledesc = qw/ - Name Type Row_format Rows Avg_row_length Data_length - Max_data_length Index_length Data_free Auto_increment - Create_time Update_time Check_time Create_options Comment /; my $db_command = "SHOW TABLE STATUS FROM loncapa LIKE '$tablename'"; my $sth = $dbh->prepare($db_command); $sth->execute(); @@ -568,14 +580,15 @@ sub update_table_info { &disconnect_from_db(); return undef; } + my @column_name = @{$sth->{NAME}}; # my @info=$sth->fetchrow_array; for (my $i=0;$i<= $#info ; $i++) { - if ($tabledesc[$i] !~ /^(Create_|Update_|Check_)time$/) { - $Tables{$tablename}->{$tabledesc[$i]}= + if ($column_name[$i] =~ /^(Create_|Update_|Check_)time$/) { + $Tables{$tablename}->{$column_name[$i]}= &unsqltime($info[$i]); } else { - $Tables{$tablename}->{$tabledesc[$i]}= $info[$i]; + $Tables{$tablename}->{$column_name[$i]}= $info[$i]; } } # @@ -978,6 +991,7 @@ sub bulk_store_rows { $request .= '('.join(',',@$row).'),'; } $request =~ s/,$//; + # $debugstring = "Executed ".$/.$request; # commented out - this is big $dbh->do($request); if ($dbh->err) { $errorstring = 'Attempted '.$/.$request.$/.'Got error '.$dbh->errstr();