Umwandlung von vB-Danke in XF-Likes

vFranky

Bekanntes Mitglied
Lizenzinhaber
Registriert
17. Nov. 2013
Beiträge
298
Punkte
68
Hallo Leute,

ich möchte die vB-Danke beim Import nach XenForo in Likes umwandeln. Dazu möchte ich dieses SQL-Skript benutzen =>

Code:
 INSERT INTO `xf_liked_content` (content_type, content_id, like_user_id, like_date, content_user_id)
SELECT 'post', vl.postid, vl.userid, vl.date, post.userid
FROM `post_thanks` AS vl
LEFT JOIN `post` AS post ON (post.postid = vl.postid)
ON DUPLICATE KEY UPDATE
content_id = VALUES(content_id);

Es stammt vom User SPS-Forum aus diesem Thread. Die vB-Tabellen post und post_thanks habe ich wie im Thread geschrieben bereits in die XenForo-Datenbank übernommen. In einem Testlauf hat genau dieses SQL-Skript auf Anhieb funktioniert, aber jetzt bekomme ich es nicht hin. Die Fehlermeldung in PHPmyAdmin lautet =>

Code:
ERROR: Nicht geschlossene Anführungszeichen @ 112
STR: '
und

Code:
#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 '\'post\', vl.postid, vl.userid, vl.date, post.userid

   FROM `post_thanks` AS ' at line 3

Ich vermutete bereits, dass hier ein Anführungszeichen nicht korrekt gesetzt ist (' vs. `), aber meine Tests führten zu nichts. Kennt sich jemand vielleicht mit mySQL aus?

Viele Grüße und vielen Dank im Voraus
Frank
 
Ich vermutete bereits, dass hier ein Anführungszeichen nicht korrekt gesetzt ist (' vs. `), aber meine Tests führten zu nichts.
Nur der Feldname 'post' in Zeile 2 muss in einfachen Hochkommata ('), die anderen Tabellennamen entweder ganz ohne ` (was ich empfehlen würde) oder eben darin eingeschlossen.
 
Ich habe es dann so ausgeführt =>

Code:
INSERT INTO xf_liked_content (content_type, content_id, like_user_id, like_date, content_user_id)
SELECT 'post', vl.postid, vl.userid, vl.date, post.userid
FROM post_thanks AS vl
LEFT JOIN post AS post ON (post.postid = vl.postid)
ON DUPLICATE KEY UPDATE
content_id = VALUES(content_id);

Leider auch ein Fehler, siehe Anhang. Verhext. Ich hatte genau diesen Code in meinen Tests bereits verwendet - und es hat schon einmal funktioniert. Ich weiß aber nicht, ob ich den Code modifiziert hatte.

Ich weiß nicht, wo das System die "nicht geschlossenen Anführungszeichen" hierbei sieht. Kann es auch an der Datenbank liegen? An sonst was?
 

Anhänge

  • SQL-Error-Likes-2.jpg
    SQL-Error-Likes-2.jpg
    68,7 KB · Aufrufe: 4
Liegt vermutlich an der Codepage Deiner Datenbank. Ich kann das Script ganz normal ohne Fehler ausführen. Schreib mal anstatt 'post' => "post".

Ich habe damals übrigens die Danke anders übernommen. Und zwar habe ich die Tabelle reputation in der vB-Datenbank (4.2) gefüllt und der Importer von XF hat dann ganz normal daraus Likes produziert. Hilft Dir aber nicht, wenn Du die Daten schon alle importiert hast.
 
Funktioniert auch nicht. :(
Bei mir wird utf_general_ci angezeigt. Bei den importierten Tabellen (post und post_thanks) ist es latin1_swedish_ci. Siehe Anhänge.

Ich habe kein vB 4.2, ich weiß nicht ob der Weg auch mit vB 3.8 funktioniert.

Ich habe soeben in meine Testinstallation geschaut. Das ist die Codepage identisch. Und dort hat es funktioniert. Das ist echt zum Mäuse melken.
 

Anhänge

  • Kollation.jpg
    Kollation.jpg
    38 KB · Aufrufe: 0
  • Kollation-Post.jpg
    Kollation-Post.jpg
    48,1 KB · Aufrufe: 0
Zuletzt bearbeitet:
Das Problem ist gelöst => Ich habe mir das externe, kostenlose SQL-Frontend Heidi-SQL als portables Programm herunter geladen, den externen Zugriff auf die DB freigegeben und siehe da ... das o.g. Skript funktioniert auf Anhieb - ohne Fehlermeldung. Insofern muss es sich in phpMyAdmin wirklich um irgendein Codepage-Problem oder sonst was gehandelt haben.

So viel zu den Grenzen von phpMyAdmin. Viel Zeit sinnlos verbraucht. :eek:

Ich danke Reinhard (RHS) für seine Unterstützung! :finger:
So wusste ich, dass der SQL-String eigentlich fehlerfrei sein muss und das Problem bei phpMyAdmin liegt.
 
Oh, da freut sich Ansgar das es wieder ein Heidi User mehr gibt. ;)

Schön das es geklappt hat. phpMyAdmin ist eh eine Gefahr für jeden Webserver.
 
Das Verrückte ist wirklich, dass es vor 14 Tagen mit phpMyAdmin geklappt hat. Deshalb war ich damit auch so hartnäckig. Das kann doch nicht einmal gehen und einmal nicht.

Wer ist denn Ansgar? Ist er auch hier im Forum? Heidi-SQL ist wirklich allererste Sahne. Ich hatte es schon vor langer Zeit eingesetzt und daher war die Idee nicht weit. Hätte ich besser sofort verwendet, dann hätte ich viel Zeit und Nervereien gespart.
 
Du hast ja interessante Arbeitskollegen!
 
Zurück
Oben