Hallo, Gast! (Registrieren)

Wir wünschen allen Besuchern frohe Ostern!

Letzte Ankündigung: MyBB 1.8.37 veröffentlicht (04.11.23)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Tabelle der Datenbank kopieren klappt nicht
#1
Hallo zusammen!

Ich habe eine Seite erstellt, bei deren Aufruf Daten von einer Schnittstelle abgerufen und in eine eigene Tabelle in der Datenbank gespeichert werden. Das klappt auch wunderbar.

Nun möchte ich diese Seite so erweitern, dass vor dem Schreiben in die Tabelle der gesamte Inhalt in eine weitere Tabelle mit exakt gleicher Struktur kopiert wird, um anschließend einen Vergleich der beiden Datenstände zu machen.
Dazu lösche ich zunächst den Inhalt der zweiten Tabelle, kopiere dann den Inhalt von der ersten zur zweiten Tabelle, lösche dann den Inhalt der ersten Tabelle und hole dann die Daten von der Schnittstelle und speicher diese.

Das Löschen funktioniert. Beim kopieren kommt allerdings folgende Fehlermeldung:

Zitat:
MyBB SQL Error
MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO `rf39_radioearn_last` SELECT * FROM `rf39_radioearn_current`' at line 1
Query:
INSERT INTO `rf39_radioearn_last` SELECT * FROM `rf39_radioearn_current`


Das komische: kopiere ich den Query aus der Fehlermeldung und führe ihn in phpMyAdmin aus, funktioniert er wie gewünscht.

Ich bin jetzt völlig ratlos und meine Suche nach einem Ansatz oder gar einer Lösung war total erfolglos. Habt ihr Ideen, was mein Problem sein könnte?

Vielen Dank im voraus!
Zitieren
#2
beim INSERT musst du doch nicht SELECT * FROM noch nutzen, da kommen dann nur die Werte, die du einfügen willst

sorry, Blödsinn Wink geht natürlich doch
Zitieren
#3
Danke für Deine Antwort Smile
Der Query an sich funktioniert, nur eben nicht, wenn ich ihn über $db->write_query ausführen möchte.
Zitieren
#4
poste doch mal die komplette php-Zeile/n mit der Query, vielleicht sieht man dann mehr
Zitieren
#5
Folgende drei Befehle sollen nacheinander durchgeführt werden. Der erste und der letzte funktionieren (hab ich getestet durch Auskommentieren des mittleren). Der mittlere bringt die Fehlermeldung aus Post 1.
PHP-Code:
// DB "last" leeren
$query "DELETE FROM `".TABLE_PREFIX."radioearn_last`";
$db->write_query($query);

// DB "current" in "last" verschieben
$query "INSERT INTO `".TABLE_PREFIX."radioearn_last` SELECT * FROM `".TABLE_PREFIX."radioearn_current`";
$db->write_query($query);

// DB "current" leeren
$query "DELETE FROM `".TABLE_PREFIX."radioearn_current`";
$db->write_query($query); 
Zitieren