Could not execute prepared statement: SQLSTATE[HY000]: General error: 2031

  • Ein Kunde von mir erhält in Zeile 33. folgenden Fehler:


    Es handelt sich hierbei um ein Eventlistener auf die UserAction welche nur bei addToGroups reagiert. Den Fehler kann ich mir aber nicht erklären. Hier soll es sich laut Stackoverflow um einen Binding-Fehler handeln. Jemand eine Idee was hier falsch läuft?

  • Die Zeilennummer war tatsächlich verrutscht, sollte nun stimmen.
    Hier mal der komplette Code:


    Bei mir läuft der Cronjob mit demselben Plugin ohne Probleme durch, deswegen wüsste ich nicht wo der Fehler liegen soll. Komplikation mit einem anderen Plugin? Laut Stacktrace sehe ich da aber nichts.

  • Hallo,

    könnte ich bitte einmal die komplette Exception aus der Log-Datei haben?

    Hier ist der Log:

  • @TimWolla
    Das Problem tritt immer bei manueller Ausführung des Cronjobs "Automatische Benutzergruppenzuordnung" auf, die automatische Ausführung des Cronjobs funktioniert überhaupt nicht.

    • Offizieller Beitrag

    Hallo,

    Das Problem tritt immer bei manueller Ausführung des Cronjobs "Automatische Benutzergruppenzuordnung" auf, die automatische Ausführung des Cronjobs funktioniert überhaupt nicht.

    magst du mir bitte einmal einen ACP-Zugang und einen FTP-Zugang zukommen lassen (Konversation, E-Mail an duesterhus@woltlab.com oder Ticket)? Ich werde in dem Event-Listener ein wenig Debug-Code einfügen und schauen, woran es liegt.

    • Offizieller Beitrag

    Hallo,

    Und $userIDs ist garantiert nicht leer?

    genau das ist das Problem.

    @ARC Die Zugangsdaten können invalidiert werden. Die Datei auf dem Server habe ich mit dem unten genannten Patch gepatcht, ansonsten wurden keinerlei Änderungen an der Installation vorgenommen. Des weiteren ist mir ist beim Testen aufgefallen, dass einige Cronjobs deaktiviert sind, wenn dies nicht gewollt ist, dann empfehle ich die Cronjobs wieder zu aktivieren.
    @Christopher Walz

    Diff
    --- DonationUserListener.class.php	2016-06-02 19:01:56.615080903 +0200
    +++ DonationUserListener.class.php.new	2016-06-02 19:02:34.956003516 +0200
    @@ -20,6 +20,7 @@
     			if ($eventName == 'initializeAction') {
     				$parameters = $eventObj->getParameters();
     				$userIDs = $eventObj->getObjectIDs();
    +				if (empty($userIDs)) return;
     				$conditions = new PreparedStatementConditionBuilder();
     			    $conditions->add("userID IN (?)", array($userIDs));
  • auch ich habe das selbe Problem : Could not execute prepared statement: SQLSTATE[HY000]: General error: 2031 seit heute nachdem ich Automatische Benutzergruppenzuordnung installiert habe.

  • Hallo,

    genau das ist das Problem.

    @ARC Die Zugangsdaten können invalidiert werden. Die Datei auf dem Server habe ich mit dem unten genannten Patch gepatcht, ansonsten wurden keinerlei Änderungen an der Installation vorgenommen. Des weiteren ist mir ist beim Testen aufgefallen, dass einige Cronjobs deaktiviert sind, wenn dies nicht gewollt ist, dann empfehle ich die Cronjobs wieder zu aktivieren.
    @Christopher Walz

    Diff
    --- DonationUserListener.class.php	2016-06-02 19:01:56.615080903 +0200
    +++ DonationUserListener.class.php.new	2016-06-02 19:02:34.956003516 +0200
    @@ -20,6 +20,7 @@
     			if ($eventName == 'initializeAction') {
     				$parameters = $eventObj->getParameters();
     				$userIDs = $eventObj->getObjectIDs();
    +				if (empty($userIDs)) return;
     				$conditions = new PreparedStatementConditionBuilder();
     			    $conditions->add("userID IN (?)", array($userIDs));

    Welche Datei bitte ?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!