Hi all,

I have a problem using a hash variable and I don't know where is the error.
Let me explain it: I have a web page with a form which user must fill in
with personal data then when the user click 'Send' button the cgi I am
programming starts; I have a txt file containing the name of the fields of
the form which match with the name of the fields in the table I want to
insert data so first thing I am doing in the cgi is obtaining data typed by
the user in the form and I store it in a hash named %postInputs; then I use
a function to initialize an array with the fields in the text file so the
name of the array is @fields. No I am using next function to insert data in
the table:

...
%postInputs = readPostInput();
readFields(@fields);
...
insertData();
...
sub insertData()
{

   my $base_datos = $fields[0];
   my $driver = "mysql";
   my $tabla = $fields[1];
   my $sql_inserta="INSERT INTO $tabla (dia_alta,
                                        mes_alta,
                                        anno_alta,
                                        $fields[2])
                                  VALUES ('$mday',
                                         '$mon',
                                         '$year',
                                         '$postInputs{'$fields[2]'}')"; #
(*) HERE IS THE PROBLEM
   my ($dbh) = DBI->connect("DBI:$driver:table_name") || die "\nError al
abrir la base de datos: $dbh->errstr()\n";
   $dbh->do($sql_inserta) || die "prepare: " . $dbh->errstr();
   $dbh->disconnect || warn "\nError al desconectar.\nError:
$DBI::errstr\n";
}

Then when I execute this function, data is inserted into the table except
the field I mark (*). If I use ...,'nombre')" it works and insert this data
into the table.

On the other hand, in the DBI->connect sentence I have another problem
because I must use DBI->connect("DBI:$driver:table_name") and I want to use
DBI->connect("DBI:$driver:$base_datos"). I think the problem is the same.

Please, does anyone know how can I solve this problem?.

Many thanks for your help.

[EMAIL PROTECTED]




_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com

Reply via email to