PDO exec() innerhalb Schleife bringt Fehlermeldung
hawkmaster
- datenbank
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
Hi!
General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll().
Hurra: Google funzt [TM] wieder!
off:PP
Hallo
Hurra: Google funzt [TM] wieder!
ich weiss nicht was du mir damit sagen willst?
Glaubst du ich habe nicht vorher ewig gegoogelt?
Mir geht es darum wie man den Fehler mit "fetchAll" beseitigen kann?
vielen Dank und viele Grüße
hawk
Hi!
Hallo
Hurra: Google funzt [TM] wieder!
ich weiss nicht was du mir damit sagen willst?
Glaubst du ich habe nicht vorher ewig gegoogelt?
'Googlen' ist dann sinnvoll, wenn man gefundene Trefferdokumente auch liest, das meinte ich. Leider ist Gogle ein grausames Wesen und präsentiert die, für uns Hilfesuchenden sinnvollste Lösung, nicht immer an Platz 1-3 der gefundenen Dokumente.
off:PP