Diff for /loncom/interface/lonmysql.pm between versions 1.20 and 1.21

version 1.20, 2004/04/19 21:29:15 version 1.21, 2004/07/21 21:01:04
Line 31  package Apache::lonmysql; Line 31  package Apache::lonmysql;
   
 use strict;  use strict;
 use DBI;  use DBI;
 use Apache::lonnet();  
 use POSIX qw(strftime mktime);  use POSIX qw(strftime mktime);
   
   my $mysqluser;
   my $mysqlpassword;
   
   sub set_mysql_user_and_password {
       # If we are running under Apache and LONCAPA, use the LON-CAPA 
       # user and password.  Otherwise...? ? ? ?
       ($mysqluser,$mysqlpassword) = @_;
       if (! defined($mysqluser) || ! defined($mysqlpassword)) {
           if (! eval 'require Apache::lonnet();') {
               $mysqluser = 'www';
               $mysqlpassword = $Apache::lonnet::perlvar{'lonSqlAccess'};
           } else {
               $mysqluser = 'fuck';
               $mysqlpassword = '';
           }
       }
   }
   
 ######################################################################  ######################################################################
 ######################################################################  ######################################################################
Line 330  connection is established. Line 346  connection is established.
 ###############################  ###############################
 sub connect_to_db {   sub connect_to_db { 
     return 1 if ($dbh);      return 1 if ($dbh);
     if (! ($dbh = DBI->connect("DBI:mysql:loncapa","www",      if (! defined($mysqluser) || ! defined($mysqlpassword)) {
                                $Apache::lonnet::perlvar{'lonSqlAccess'},          &set_mysql_user_and_password();
       }
       if (! ($dbh = DBI->connect("DBI:mysql:loncapa",$mysqluser,$mysqlpassword,
                                { RaiseError=>0,PrintError=>0}))) {                                 { RaiseError=>0,PrintError=>0}))) {
         $debugstring = "Unable to connect to loncapa database.";              $debugstring = "Unable to connect to loncapa database.";    
         if (! defined($dbh)) {          if (! defined($dbh)) {
Line 363  initialize anything in the lonmysql pack Line 381  initialize anything in the lonmysql pack
   
 ###############################  ###############################
 sub verify_sql_connection {  sub verify_sql_connection {
       if (! defined($mysqluser) || ! defined($mysqlpassword)) {
           &set_mysql_user_and_password();
       }
     my $connection;      my $connection;
     if (! ($connection = DBI->connect("DBI:mysql:loncapa","www",      if (! ($connection = DBI->connect("DBI:mysql:loncapa",
                                       $Apache::lonnet::perlvar{'lonSqlAccess'},                                        $mysqluser,$mysqlpassword,
                                       { RaiseError=>0,PrintError=>0}))) {                                        { RaiseError=>0,PrintError=>0}))) {
         return 0;          return 0;
     }      }
Line 580  sub col_order { Line 601  sub col_order {
  return ();   return ();
     }      }
 }  }
   
 ###############################  ###############################
   
 =pod  =pod
Line 587  sub col_order { Line 609  sub col_order {
 =item &create_table()  =item &create_table()
   
 Inputs:   Inputs: 
     table description      table description, see &build_table_creation_request
   Returns:
       undef on error, table id on success.
   
   =cut
   
   ###############################
   sub create_table {
       return undef if (!defined(&connect_to_db($dbh)));
       my ($table_des)=@_;
       my $request = &build_table_creation_request($table_des);
       #
       # Execute the request to create the table
       #############################################
       my $count = $dbh->do($request);
       if (! defined($count)) {
           $errorstring = "$dbh ATTEMPTED:\n".$request."\nRESULTING ERROR:\n".
               $dbh->errstr();
           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);
       delete($Tables{$tablename}) if (exists($Tables{$tablename}));
       return undef if (! defined(&update_table_info($table_id)));
       $debugstring = "Created table $tablename at time ".time.
           " with request\n$request";
       return $table_id;
   }
   
 Input formats:  ###############################
   
   =pod
   
   =item build_table_creation_request
   
   Input: table description
   
     table description = {      table description = {
         permanent  => 'yes' or 'no',          permanent  => 'yes' or 'no',
Line 621  Input formats: Line 684  Input formats:
   
     }      }
   
 Returns:  Returns: scalar string containing mysql commands to create the table
     undef on error, table id on success.  
   
 =cut  =cut
   
 ###############################  ###############################
 sub create_table {  sub build_table_creation_request {
     return undef if (!defined(&connect_to_db($dbh)));  
     my ($table_des)=@_;      my ($table_des)=@_;
     #      #
     # Build request to create table      # Build request to create table
Line 709  sub create_table { Line 770  sub create_table {
         $request.="COMMENT = 'temporary' ";          $request.="COMMENT = 'temporary' ";
     }       } 
     $request .= "TYPE=MYISAM";      $request .= "TYPE=MYISAM";
     #      return $request;
     # Execute the request to create the table  
     #############################################  
     my $count = $dbh->do($request);  
     if (! defined($count)) {  
         $errorstring = "$dbh ATTEMPTED:\n".$request."\nRESULTING ERROR:\n".  
             $dbh->errstr();  
         return undef;  
     }  
     #  
     # Set up the internal bookkeeping  
     #############################################  
     delete($Tables{$tablename}) if (exists($Tables{$tablename}));  
     return undef if (! defined(&update_table_info($table_id)));  
     $debugstring = "Created table $tablename at time ".time.  
         " with request\n$request";  
     return $table_id;  
 }  }
   
 ###############################  ###############################

Removed from v.1.20  
changed lines
  Added in v.1.21


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