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