version 1.26, 2005/02/09 21:21:08
|
version 1.29, 2005/04/07 06:56:23
|
Line 32 package Apache::lonmysql;
|
Line 32 package Apache::lonmysql;
|
use strict; |
use strict; |
use DBI; |
use DBI; |
use POSIX qw(strftime mktime); |
use POSIX qw(strftime mktime); |
|
use Apache::lonnet; |
|
|
my $mysqluser; |
my $mysqluser; |
my $mysqlpassword; |
my $mysqlpassword; |
|
my $mysqldatabase; |
|
|
sub set_mysql_user_and_password { |
sub set_mysql_user_and_password { |
# If we are running under Apache and LONCAPA, use the LON-CAPA |
# If we are running under Apache and LONCAPA, use the LON-CAPA |
# user and password. Otherwise...? ? ? ? |
# user and password. Otherwise...? ? ? ? |
($mysqluser,$mysqlpassword) = @_; |
my ($input_mysqluser,$input_mysqlpassword,$input_mysqldatabase) = @_; |
|
if (! defined($mysqldatabase)) { |
|
$mysqldatabase = 'loncapa'; |
|
} |
|
if (defined($input_mysqldatabase)) { |
|
$mysqldatabase = $input_mysqldatabase; |
|
} |
if (! defined($mysqluser) || ! defined($mysqlpassword)) { |
if (! defined($mysqluser) || ! defined($mysqlpassword)) { |
if (! eval 'require Apache::lonnet();') { |
if (! eval 'require Apache::lonnet();') { |
$mysqluser = 'www'; |
$mysqluser = 'www'; |
Line 49 sub set_mysql_user_and_password {
|
Line 57 sub set_mysql_user_and_password {
|
$mysqlpassword = ''; |
$mysqlpassword = ''; |
} |
} |
} |
} |
|
if (defined($input_mysqluser)) { |
|
$mysqluser = $input_mysqluser; |
|
} |
|
if (defined($input_mysqlpassword)) { |
|
$mysqlpassword = $input_mysqlpassword; |
|
} |
} |
} |
|
|
###################################################################### |
###################################################################### |
Line 76 Each table has a numeric ID that is a pa
|
Line 90 Each table has a numeric ID that is a pa
|
The table id is returned by &create_table. |
The table id is returned by &create_table. |
If you lose the table id, it is lost forever. |
If you lose the table id, it is lost forever. |
The table names in MySQL correspond to |
The table names in MySQL correspond to |
$ENV{'user.name'}.'_'.$ENV{'user.domain'}.'_'.$table_id. If the table id |
$env{'user.name'}.'_'.$env{'user.domain'}.'_'.$table_id. If the table id |
is non-numeric, it is assumed to be the full name of a table. If you pass |
is non-numeric, it is assumed to be the full name of a table. If you pass |
the table id in a form, you MUST ensure that what you send to lonmysql is |
the table id in a form, you MUST ensure that what you send to lonmysql is |
numeric, otherwise you are opening up all the tables in the MySQL database. |
numeric, otherwise you are opening up all the tables in the MySQL database. |
Line 349 sub connect_to_db {
|
Line 363 sub connect_to_db {
|
if (! defined($mysqluser) || ! defined($mysqlpassword)) { |
if (! defined($mysqluser) || ! defined($mysqlpassword)) { |
&set_mysql_user_and_password(); |
&set_mysql_user_and_password(); |
} |
} |
if (! ($dbh = DBI->connect("DBI:mysql:loncapa",$mysqluser,$mysqlpassword, |
if (! ($dbh = DBI->connect("DBI:mysql:$mysqldatabase",$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 807 sub get_new_table_id {
|
Line 821 sub get_new_table_id {
|
my $newid = 0; |
my $newid = 0; |
my @tables = &tables_in_db(); |
my @tables = &tables_in_db(); |
foreach (@tables) { |
foreach (@tables) { |
if (/^$ENV{'user.name'}_$ENV{'user.domain'}_(\d+)$/) { |
if (/^$env{'user.name'}_$env{'user.domain'}_(\d+)$/) { |
$newid = $1 if ($1 > $newid); |
$newid = $1 if ($1 > $newid); |
} |
} |
} |
} |
Line 1085 sub translate_id {
|
Line 1099 sub translate_id {
|
# id should be a digit. If it is not a digit we assume the given id |
# id should be a digit. If it is not a digit we assume the given id |
# is complete and does not need to be translated. |
# is complete and does not need to be translated. |
return $id if ($id =~ /\D/); |
return $id if ($id =~ /\D/); |
return $ENV{'user.name'}.'_'.$ENV{'user.domain'}.'_'.$id; |
return $env{'user.name'}.'_'.$env{'user.domain'}.'_'.$id; |
} |
} |
|
|
########################################### |
########################################### |
Line 1195 Fixes a table name so that it will work
|
Line 1209 Fixes a table name so that it will work
|
########################################## |
########################################## |
sub fix_table_name { |
sub fix_table_name { |
my ($name) = @_; |
my ($name) = @_; |
$name =~ s/^(\d+e\d+)/_$1/; |
$name =~ s/^(\d+[eE]\d+)/_$1/; |
return $name; |
return $name; |
} |
} |
|
|