我在Perl中有一个像下面这样的数组(只有更大)。我的数组称为@sqlInsert


  元素1
  一种
  乙
  C
  
  元素2
  一种
  乙
  C
  
  元素3
  一种
  乙
  C


我想用此数据中的信息填充MySQL表。所以说真的,我想排一行:

 for ($count=0; $count<@arrayInsert; $count++) {
      INSERT INTO table values ("sqlInsert[$i]","sqlInsert[$i+1]","sqlInsert[$i+2]","sqlInsert[$i+3]")
 }


有指针吗?

最佳答案

使用DBI placeholders和...

...数组切片:

 my $sth = $dbh->prepare( 'INSERT INTO table VALUES ( ?, ?, ?, ? )' );

 $sth->execute( @sqlInsert[ $n .. $m ] );


...或拼接:

 while( @sqlInsert ) {
      $sth->execute( splice @sqlInsert, 0, $length, () );
      }


创建一个已经对每个结构的元素进行分组的数据结构(例如数组数组)可能会更容易:

 foreach my $ref ( @sqlInsert ) {
      $sth->execute( @$ref );
      }

关于mysql - 如何将数组的一部分插入MySQL?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4101853/

10-13 02:38