Ver Mensaje Individual
  #4 (permalink)  
Antiguo 16/08/2007, 13:13
jferrero
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 6 meses
Puntos: 11
Re: Insertando multiples registros con MySQL

Es que lo correcto es sacar el prepare fuera del bucle, ya que siempre es la misma "preparación", y hacer un execute en cada vuelta. El finish() sobra la mayoría de las veces (esto último lo dice el manual, no yo).
Código Perl:
Ver original
  1. my $dbh = ConectarDB->connect();
  2. my $sth = $dbh->prepare('INSERT INTO inventarios values(?,?,?,?,?,?,?,?)')
  3.     or die("Couldn't prepare statement: " . $dbh->errstr);
  4. my @id;
  5. my ($departamento, $categoria);
  6. my @vars;
  7. foreach ( @data_ ) {
  8.     @id = split q{,}, $_;
  9.     ($departamento, $categoria) = split q{.}, $id[6];
  10.     @vars = ($id[0], $departamento, $categoria, @id[2,1,4,3,5]);
  11.     print "($id[6]) ", join(q{|}, @vars), "<br>\n";
  12.     $sth->execute(@vars) or die("Couldn't execute statement: " . $sth->errstr);
  13. }
  14. $dbh->disconnect;

Última edición por jferrero; 04/03/2010 a las 17:27