PHP-Skript für MySQL-Dump verdoppelt seltsamerweise VALUES
-
Hallo,
ich habe mir fix als Modul für ein umfangreicheres System von mir Folgendes geschrieben, um es als automatische Backupmöglichkeit zu integrieren:$tables = $sql->query("SHOW TABLES FROM `".addslashes($data['db'])."`"); while($table = $sql->fetch_array($tables)) { $fields = $sql->query("SHOW FIELDS FROM `".addslashes($table[0])."`"); $x = array(); while($field = $sql->fetch_array($fields)) { $x[] = $field['Field']; } $cols = implode('`,`',$x); $values = $sql->query("SELECT `".$cols."` FROM `".addslashes($table[0])."`"); while($value = $sql->fetch_array($values)) { echo('INSERT INTO `'.$table[0].'` (`'.$cols.'`)<br /> VALUES \''.implode('\',\'',$value).'\'<br /><br />'); } }
Interessanterweise werden jedoch die VALUES verdoppelt; vereinfachtes Beispiel:
Richtig (so sollte es sein):
- INSERT INTO tabelle (bla1,bla2) VALUES(blub1,blub2)Falsch (so ist es mit o. g. Snippet):
- INSERT INTO tabelle (bla1,bla2) VALUES(blub1,blub1,blub2,blub2)Kann mir da jemand auf die Sprünge helfen?
Ach ja, eine andere Form (extern, mysqldump o. ä.) soll es bitte nicht werden.
-
Ich Idiot, es wird ja der numerische und assoziative Index beachtet, habe nun mal FETCH_ASSOC genommen ...
... gibt es jedoch einen "eleganteren" Weg?
Evtl. indem man direkt das aktuelle Feld anspricht ...