hawkmaster: PDO exec() innerhalb Schleife bringt Fehlermeldung

Beitrag lesen

Hallo zusammen,
ich möchte eine Art "restore" Möglichkeit schaffen.
Dazu habe ich mit PhpMyAdmin ein paar MySQL Tabellen exportiert.
Nun versuche ich mit einem Script wie folgt die Tabellen einzulesen.

$path="../sql/export/default/";
$default_table_sqlfile_arr = array("types_values_Default.sql","types_finvalues_Default.sql","mediatype_Default.sql");
 foreach($default_table_sqlfile_arr as $sqlfile){
 $file = $sqlfile;
 if ($file!="") {
 $filename = $file;
 $file=fread(fopen($path.$file, "r"), 10485760);
 $DBO->exec($file) ;
 echo "<br /><br />";
 echo "<b>$filename <br /><br />successfully restored!</b>";
 }
}//foreach

Mit einer einzelnen Tabelle klappt es ganz gut. Nur wenn es wie im Beispiel mehrere sind, bringt PDO den Fehler:

General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll().

Ich weiss nun nicht wie man das mit "fetchAll()" lösen könnte?

Eine SQL Datei sieht etwa so aus:

-- Table structure for table types\_values
--

CREATE TABLE types\_values (
  TypeID int(10) unsigned NOT NULL auto_increment,
  Type varchar(200) default NULL,
  TextID int(10) default NULL,
  TypePrice float(6,4) unsigned NOT NULL default '0.0000',
  Language varchar(10) default NULL,
  DefaultValue enum('yes','no') NOT NULL default 'no',
  State enum('fix','variable') NOT NULL default 'variable',
  PRIMARY KEY  (PaperTypeID),
  UNIQUE KEY typelang (Type,Language),
  KEY TextID (TextID)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=35 ;

--
-- Dumping data for table types\_values
--

INSERT INTO types\_values VALUES(1, 'plain', 87, 0.0000, NULL, 'yes', 'fix');
INSERT INTO types\_values VALUES(2, 'recycled', 100, 0.0000, NULL, 'yes', 'fix');
INSERT INTO types\_values VALUES(3, 'special', 101, 0.0000, NULL, 'yes', 'fix');

vielen Dank und viele Grüße
hawk