Moin,
Und wenn der neue Feldname foo2 in der DB dazukommt, muss ich den Programmcode ändern?
Analog zur Spalte new die Spalte foo2 sowie den zu verwendenden Wert ergänzen.
Ausser dem kopierenden Programm gibt es andere, derentwegen ein neues Feld dazugekommen ist. Das muss das Kopierprogramm nicht wissen, aber mitkopieren.
Der Code sollte wissen welche Spalten in der Tabelle stehen … Einfach alle Spalten kopieren geht nicht wenn eine auto_increment-Spalte im Spiel ist, zudem könntest du dann keine Werte direkt ändern. Du wirst die Spalten von Hand raussuchen und den Query zusammenbauen müssen (die Tabelle information_schema.COLUMNS existiert).
Ich bin mir da aber nicht so sicher ob das überhaupt sinnvoll ist was du da vor hast: zum Kopieren eines Datensatzes würde ich den bestehenden Datensatz als Standardwerte für ein Formular verwenden (ggf. Werte die auf jeden Fall geändert werden o.ä. leer lassen) und nach dem Absenden von dem die Daten als neuen Datensatz speichern.
Gruß
Tobias