Viktor's Supportboard
Quickmenü
» Start
» Portal
» Kontakt
» Mitglieder
» Team

» Handy-Ansicht


Usermenü

» Registrieren

Login
Benutzername:
Passwort:

(Passwort vergessen?)

Database
» Database

Lizenzshop/Verwaltung
» Lizenzshop/Verwaltung


Allgemeines
» Themen der letzen 24 Stunden
» Beiträge von Heute
» Aktuelle Umfragen
» Themen als gelesen markieren
» Themen ohne Antwort

» F.A.Q
» Regeln
» Impressum
» Datenschutzerklärung

» Linkliste
» Partner
» Statistik

Kostenplichtige Hacks
» VG-Lizenz
» VG-Fotowettbewerb
» VG-Kontaktanzeige
» VG-Literatur-Verwaltung
» VGTreffen/Dater
» VGMusik/Video

Mein Hacks
» VGUser-Leaflet-Map
» VGUser-Google-Map
» VGClub-Map-Google
» User-Map
» Club-Map
» User-Locator
» Club-Locator
» Mitglieder Bilderupload
» VGOnlineList
» Teamspeak Onlineanzeige

Meine Banner
» Meine Banner

Statistik
Beiträge: 140.007 (Täglich: 22,17 )
Themen: 16.283
Mitglieder: 13.169
Neuestes Mitglied: roteblume.
Ausl. d. letzten Minute: 84%
Ausl. d. letzten 5 Minuten: 109%
Ausl. d. letzten 15 Minuten: 106%
Freier Webspace: 1.92 TB
PHP-Version: 7.4.6

Spenden

Partner
Mein Supportboard

MySQLDumper

Forum für Angehörige und Freunde von Krebspatienten

Wetter-Board

Make your Webserver

ABC-des Essens

IC-Netforum

ultimate-funultimate-fun

Steinadler-Bastelstübchen

Webseitenschutz

Werben

Viktor's Supportboard » Support » Fragen/Hilfe/Sonstiges (wBB2.3.x) » Massenbearbeitung Themen fehler » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Massenbearbeitung Themen fehler
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
golf3look   Zeige golf3look auf Karte
Routinier


Zeige golf3look auf Karte
Dabei seit: 29.05.2006
Beiträge: 301
0 Filebase-Einträge


Bewertung: 
5 Bewertung(en) - Durchschnitt: 2,80

Level: 39 [?]
Erfahrungspunkte: 1.594.326
Nächster Level: 1.757.916

163.590 Erfahrungspunkt(e) für den nächsten Levelanstieg



Massenbearbeitung Themen fehler Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Ende der Seite springen Zum Anfang der Seite springen

Hallo,

Wenn ich im acp massenbearbeitung Themen wähle und dann bestimmte bestimmte ausgewählte Foren löschen möchte, erhalte ich diese Fehlermeldung.


SQL-DATABASE ERROR

Database error in WoltLab Burning Board (2.3.6): Invalid SQL: UPDATE bb1_stats SET threadcount=threadcount-20, postcount=postcount-46
mysql error: BIGINT UNSIGNED value is out of range in '(`d022eda1`.`bb1_stats`.`threadcount` - 20)'
mysql error number: 1690
mysql version: 5.7.28-nmm1-log
php version: 7.4.2
Date: 30.04.2020 @ 14:42
Script: /acp/threads.php
Referer: /acp/threads.php?action=threads_mass_edi...nuitemgroupid=3

Vielen Dank im voraus.
30.04.2020 14:48 golf3look ist offline E-Mail an golf3look senden Beiträge von golf3look suchen Nehmen Sie golf3look in Ihre Freundesliste auf Germany
Viktor   Zeige Viktor auf Karte Viktor ist männlich
Administrator


images/avatars/avatar-15762.jpg

Zeige Viktor auf Karte
Dabei seit: 15.08.2003
Beiträge: 30.251
363 Filebase-Einträge
Alter: 63 Jahre
Herkunft: NRW
wBB-Version: wBB2.3
PHP-Version: 7.4.6
MySQL-Version: 5.5.62
Wo bist du gehostet?: eigener Server

Bewertung: 
279 Bewertung(en) - Durchschnitt: 9,47

Level: 69 [?]
Erfahrungspunkte: 191.003.772
Nächster Level: 202.592.733

11.588.961 Erfahrungspunkt(e) für den nächsten Levelanstieg



RE: Massenbearbeitung Themen fehler Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Ende der Seite springen Zum Anfang der Seite springen

Hallo,

wie ich das sehe läuft die Rechnung "threadcount=threadcount-20" ins minus. geschockt

Du kannst mal folgendes versuchen.

Die Datei "acp/threads.php" bearbeiten.

Suche:
code:
1:
2:
3:
                                        $db->unbuffered_query("UPDATE bb".$n."_stats SET threadcount=threadcount-".intval($threadcount).", postcount=postcount-".intval($postcount), 1);


Ersetze mit:
code:
1:
2:
3:
                                        $db->unbuffered_query("UPDATE bb".$n."_stats SET threadcount = ( CAST( threadcount AS SIGNED ) - ".intval($threadcount)." ), postcount = CAST( postcount AS SIGNED ) -  ".intval($postcount), 1);


Gruß
Viktor Augenzwinkern

__________________
Ein kluger Mann widerspricht keiner Frau. Er wartet, bis sie es selbst tut.


... beim Käfer (WBB2) konnte man noch selber schrauben,
beim neuen Golf (WBB3) muß man fast schon in die Werkstatt wenn man das "Wischwasser" nachfüllen muss!


Da fast keiner mehr hier Postet gibt es ab sofort keinen Support mehr per PN.

Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Viktor: 30.04.2020 23:14.

30.04.2020 21:09 Viktor ist offline E-Mail an Viktor senden Homepage von Viktor Beiträge von Viktor suchen Nehmen Sie Viktor in Ihre Freundesliste auf Germany
golf3look   Zeige golf3look auf Karte
Routinier


Zeige golf3look auf Karte
Dabei seit: 29.05.2006
Beiträge: 301
0 Filebase-Einträge


Bewertung: 
5 Bewertung(en) - Durchschnitt: 2,80

Level: 39 [?]
Erfahrungspunkte: 1.594.326
Nächster Level: 1.757.916

163.590 Erfahrungspunkt(e) für den nächsten Levelanstieg

Themenstarter Thema begonnen von golf3look


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Ende der Seite springen Zum Anfang der Seite springen

Danke Viktor aber leider kommt jetzt dieser Fehler

Die gesuchte stelle ist 2mal drin. Hatte beide geändert.

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
SQL-DATABASE ERROR

Database error in WoltLab Burning Board (2.3.6): Invalid SQLUPDATE bb1_stats SET threadcount = ( CASTthreadcount AS SIGNED ) - 20postcount = ( CASTpostcount AS SIGNED ) - 46
mysql errorYou have an error in your SQL syntaxcheck the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
mysql error number1064
mysql version5.7.28-nmm1-log
php version7.4.2
Date30.04.2020 22:14
Script: /acp/threads.php
30.04.2020 22:23 golf3look ist offline E-Mail an golf3look senden Beiträge von golf3look suchen Nehmen Sie golf3look in Ihre Freundesliste auf Germany
Viktor   Zeige Viktor auf Karte Viktor ist männlich
Administrator


images/avatars/avatar-15762.jpg

Zeige Viktor auf Karte
Dabei seit: 15.08.2003
Beiträge: 30.251
363 Filebase-Einträge
Alter: 63 Jahre
Herkunft: NRW
wBB-Version: wBB2.3
PHP-Version: 7.4.6
MySQL-Version: 5.5.62
Wo bist du gehostet?: eigener Server

Bewertung: 
279 Bewertung(en) - Durchschnitt: 9,47

Level: 69 [?]
Erfahrungspunkte: 191.003.772
Nächster Level: 202.592.733

11.588.961 Erfahrungspunkt(e) für den nächsten Levelanstieg



Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Ende der Seite springen Zum Anfang der Seite springen

Zitat:
Original von golf3look
Danke Viktor aber leider kommt jetzt dieser Fehler

Die gesuchte stelle ist 2mal drin. Hatte beide geändert.

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
SQL-DATABASE ERROR

Database error in WoltLab Burning Board (2.3.6): Invalid SQLUPDATE bb1_stats SET threadcount = ( CASTthreadcount AS SIGNED ) - 20postcount = ( CASTpostcount AS SIGNED ) - 46
mysql errorYou have an error in your SQL syntaxcheck the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
mysql error number1064
mysql version5.7.28-nmm1-log
php version7.4.2
Date30.04.2020 22:14
Script: /acp/threads.php


Hallo,

ich habe meinen Code oben noch mal angepasst. fröhlich

Gruß
Viktor Augenzwinkern

__________________
Ein kluger Mann widerspricht keiner Frau. Er wartet, bis sie es selbst tut.


... beim Käfer (WBB2) konnte man noch selber schrauben,
beim neuen Golf (WBB3) muß man fast schon in die Werkstatt wenn man das "Wischwasser" nachfüllen muss!


Da fast keiner mehr hier Postet gibt es ab sofort keinen Support mehr per PN.

30.04.2020 22:40 Viktor ist offline E-Mail an Viktor senden Homepage von Viktor Beiträge von Viktor suchen Nehmen Sie Viktor in Ihre Freundesliste auf Germany
golf3look   Zeige golf3look auf Karte
Routinier


Zeige golf3look auf Karte
Dabei seit: 29.05.2006
Beiträge: 301
0 Filebase-Einträge


Bewertung: 
5 Bewertung(en) - Durchschnitt: 2,80

Level: 39 [?]
Erfahrungspunkte: 1.594.326
Nächster Level: 1.757.916

163.590 Erfahrungspunkt(e) für den nächsten Levelanstieg

Themenstarter Thema begonnen von golf3look


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Ende der Seite springen Zum Anfang der Seite springen

Vielen dank Viktor fehler ist weg. smile
30.04.2020 22:44 golf3look ist offline E-Mail an golf3look senden Beiträge von golf3look suchen Nehmen Sie golf3look in Ihre Freundesliste auf Germany
Schrimm
Spezialist



Dabei seit: 16.03.2015
Beiträge: 682
12 Filebase-Einträge

wBB-Version: wBBLite

Bewertung: 
8 Bewertung(en) - Durchschnitt: 9,88

Level: 38 [?]
Erfahrungspunkte: 1.421.039
Nächster Level: 1.460.206

39.167 Erfahrungspunkt(e) für den nächsten Levelanstieg



Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Ende der Seite springen Zum Anfang der Seite springen

Hallo,

Da mich Stine vor ca. 4 Wochen deshalb angeschrieben hat, die Änderung in die Anleitung zu übernehmen, und ich die Nachricht erst heute gelesen habe, daher Antworte ich mal hier:

Das Problem entsteht durch die Operation an sich.
Ein "signed" Bigint hat einen Bereich von -9223372036854775808 bis 9223372036854775807.
Ein "unsigned" Bigint hat einen Bereich von 0 bis 18446744073709551615.

Soweit so gut.
In unserem MySQL-Statement haben wir nun einen "unsigned" Minuenden(threadcount) und je nach Fall einen "unsigned" oder "signed" Subtrahenden($threadcount).
Beispielsweise werden folgende Varianten standardmäßig NICHT gleich behandelt:
php:
1:
2:
3:
1. threadcount ".intval($threadcount)."
2. threadcount + (-".intval($threadcount).")
3. threadcount + -".intval($threadcount)."

Im ersten Fall handelt es sich um einen Subtrahend der im "unsigned" Bereich ist.
In den beiden anderen Fällen ist der Subtrahend immer im "signed" Bereich, da implizit ein Cast auf den Subtrahenden durchgeführt wird.
Unterschreitet der Subtrahend den "signed"-Bereich wird in diesen Fällen die gesamte Operation, unabhängig davon, ob der Minuend nun "signed" oder "unsigned" ist, auf den "signed" Bereich gecastet.
Bewegt sich der "Subtrahend" aber weiterhin im "signed" Bereich hängt es vom Minunend ab, ob nun das Endergebnis auf den "signed" Bereich gecastet wird, oder weiterhin im "unsigned" Bereich liegen muss. Letzteres würde weiterhin einen Fehler erzeugen.

Überschreitet der Subtrahend in Fall 1 den "unsigned" Bereich (>18446744073709551615) wird ebenfalls das gesamte Ergebnis auf den "signed" Bereich gecastet.
Castet man nur den Minuenden, muss sich sowohl der Subtrahend im "signed" Bereich bewegen, als auch das Endergebnis.

Multipliziert man eine der Komponenten mit einem "float", beispielweise "1.0", kommt ebenfalls ein impliziter Cast zur Anwendung und sorgt dafür, dass das Endergebnis auf den "signed" Bereich gecastet wird.

Das ganze Verhalten lässt sich auch auf eine Addition umlegen.

Das "unsigned" Problem lässt sich mit dem SQL-Modus "NO_UNSIGNED_SUBTRACTION" beheben, denn dadurch wird standardmäßig die gesamte Operation in den "signed" Bereich gecastet und wird niemals einen Overflow haben.
Sofern nun kein "Strict"-Modus aktiviert ist, wird aufgrund der Spalteneigenschaften ein falscher negativer Wert einfach auf "0" gesetzt und ein positiver Wert liegt ohnehin im "unsigned" Bereich, da er "9223372036854775807" nicht überschreiten kann.
Ist jedoch der "Strict"-Modus aktiv, erhält man für einen negativen Wert weiterhin eine Fehlermeldung.

Dadurch ist sowohl ein impliziter Cast, als auch ein expliziter Cast, wie hier im Thema vorgeschlagen, denkbar ungeeignet.

Eine "bessere allgemeinere Lösung" führt über den Weg, dass man die Spalte korrekt ausliest und die Subtraktion dementsprechend korrekt durchführt.

Das "Auslesen" kann man sich jedoch dank MySQL doch etwas sparen, wenn man "CASE", "LEAST" oder Ähnliches verwendet:
php:
1:
threadcount = CASE WHEN threadcount >= ".intval($threadcount)." THEN threadcount ".intval($threadcount)." ELSE 0 END

oder
php:
1:
threadcount threadcount LEAST(threadcount".intval($threadcount).")


Dadurch wird sichergestellt, dass der Wert bei der Subtraktion immer im erlaubten Bereich ist.
Unabhängig von "NO_UNSIGNED_SUBTRACTION" und dem "Strict"-Modus.

Mit freundlichen Grüßen,
Schrimm

__________________
Nur bei v-gn.de

WoltLab Burning Board Lite 1.0.2pl3 ( HTML5 ) - Version

mywbb.info(†19.8.2011)
your-wbb.de(†20.2.2015)

18.11.2020 20:27 Schrimm ist offline Beiträge von Schrimm suchen Nehmen Sie Schrimm in Ihre Freundesliste auf Austria
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Viktor's Supportboard » Support » Fragen/Hilfe/Sonstiges (wBB2.3.x) » Massenbearbeitung Themen fehler

Impressum | Datenschutz | Fast-Index

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab® GmbH Design © Tine

Valid XHTML 1.0! Valid CSS! Die letzten Themen Die letzten Beiträge © für wbb2 by Bandy & cback.de Geblockte Angriffe: 24.942
Seo Sidemap Powert by 2Clubradio.de
Viktor's Supportboard, ist " Online " seit 17 Jahren, 104 Tage, 23 Stunden, 10 Minuten und 22 Sekunden