CLI Import - Fehlermeldung

  • Affected Version
    WoltLab Suite 3.1

    Vorweg: Ich hoffe ich habe beim Erstellen des posts das richtige Produkt ausgewählt: Core -> oder besser Forum?


    Hallo liebe Woltlab Gemeinde,


    ich benötige Hilfe bei einer import php-Fehlermeldung.

    Grundlegend möchte ich von einer "Forensoftware: Burning Board® 3.1.8," auf die aktuelle Version updaten und gleichzeitig einen Serverwechsel durchführen.


    Server(alt)

    PHP 5.4.45-0+deb7u1

    mysql Ver 14.14 Distrib 5.5.60,


    Server(neu)

    PHP-Version: 7.1.16

    Server-Typ: MariaDB, Server-Version: 10.1.31-MariaDB


    Dazu habe ich bisher folgende Schritte durchgeführt.


    - wbb3(DB Dump) vom Server(alt) auf Server(neu) mittels Konsole eingespielt. (kein Fehler)

    - Datenbestand vom Server(alt) auf Server(neu) in ein Unterverzeichnis kopiert (ssh -> rysnc)


    Nun via CLI-Import Anleitung begonnen mit:

    screen -S import php cli.php --packageID=4 -> import -> sowie den nötigen Angaben gemäß der Anleitung.


    Die Datenbankgröße ist als sql-File ca. 1.9GB groß, sodass der import etwas länger dauern wird. :sleeping:

    Die nachfolgende Fehlermeldung kommt beim Importieren der Beiträge bei 71%.

    Vielen Dank im voraus.

  • message 'Could not execute statement 'SELECT *

    FROM wbb1_post

    WHERE postID = ?'' in

    Hast du die die wbb1_post mal angesehen, ob da in der postID was steht, was da nicht hingehört?


    Ansonsten würde ich es direkt über den Ticketsupport versuchen.

    Liebe Grüße
    Susi

  • Hallo Susi,

    vielen Dank für deine schnelle Antwort.

    SELECT * FROM `wbb1_1_post` WHERE `postID` ="?" liefert null Datensätze zurück. Zudem ist ist der Attribut-Typ postID der Tabelle wbb1_1_post als int(10) gesetzt. Nach meinem Verständnis darf somit kein anderes Zeichen als eine Zahl (Integer) auftauchen.

  • Das verstehst Du technisch falsch. Du hast manuell eine direkte Abfrage ausgeführt... dann ist das "?" nicht korrekt. Das WSC wollte ein vorbereitete Abfrage (prepared statement) ausführen.


    Der Unterschied hierbei ist, das "prepared statement" verwendet das "?" als Platzhalter. Das "prepared statement" wird gegen die Datenbank abgesendet, die Datenbank kann nun diverse Prüfungen vorab machen, unter anderem einen "execute plan" erstellen, usw.


    Die anschließenden Abfragen erfolgen, in dem man der Datenbank mitteilt, dass nun das vorbereitete Statement X mit der Platzhalterersetzung 1, 2, ... ausgeführt wird. Das Ganze ist dann unter anderem schneller, weil eben der "execution plan" schon vorbeitet ist und nur jeweils der Platzhalter ersetzt wird.

  • Hallo Barungar,

    danke für deine Erklärung. Wenn also das WSC eine Abfrage (prepared statement) ausführt und dann später ein Array abgerbeitet wird oder Ähnliches... was Sinn macht bzw. sicherlich "performance-optimiert" ist, dann ist quasi Susi´s möglicher Hinweis eher nicht der Fall. Verstehe ich die Fehlermeldung richtig, dass die postID: 2506461 gemeint sein könnte?
    (In Summe hat die Tabelle-wbb1_1_post 3155444 Einträge was circa 79% entspricht..

    Ich habe mal ein Ticket aufgemacht.

  • Öh, das kann ich Dir nicht genau sagen. Im Lesen von Stacktraces bin ich nicht so gut, steht in der Fehlermeldung (im Log) keine "Extra-Information"?!

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!