Hoffe, das hilft jemandem ... Hier ist ein kleines PHP-Skript, das ich geschrieben habe, falls Sie einige Spalten kopieren müssen, andere jedoch nicht, und / oder die Spalten in beiden Tabellen nicht in derselben Reihenfolge sind. Solange die Spalten den gleichen Namen haben, funktioniert dies. Wenn also Tabelle A [Benutzer-ID, Handle, etwas] und Tabelle B [Benutzer-ID, Handle, Zeitstempel] hat, würden Sie "Benutzer-ID, Handle, JETZT () als Zeitstempel VON Tabelle A AUSWÄHLEN" und dann das Ergebnis erhalten Übergeben Sie das Ergebnis als ersten Parameter an diese Funktion ($ z). $ toTable ist ein Zeichenfolgenname für die Tabelle, in die Sie kopieren, und $ link_identifier ist die Datenbank, in die Sie kopieren. Dies ist für kleine Datenmengen relativ schnell. Es wird nicht empfohlen, auf diese Weise in einer Produktionsumgebung mehr als ein paar tausend Zeilen gleichzeitig zu verschieben.
function mysql_multirow_copy($z,$toTable,$link_identifier) {
$fields = "";
for ($i=0;$i<mysql_num_fields($z);$i++) {
if ($i>0) {
$fields .= ",";
}
$fields .= mysql_field_name($z,$i);
}
$q = "INSERT INTO $toTable ($fields) VALUES";
$c = 0;
mysql_data_seek($z,0); //critical reset in case $z has been parsed beforehand. !
while ($a = mysql_fetch_assoc($z)) {
foreach ($a as $key=>$as) {
$a[$key] = addslashes($as);
next ($a);
}
if ($c>0) {
$q .= ",";
}
$q .= "('".implode(array_values($a),"','")."')";
$c++;
}
$q .= ";";
$z = mysql_query($q,$link_identifier);
return ($q);
}