Fehlermeldung bei Anlegung eines Feldes vom Typ Nummer

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • MacKP
    Contao-Yoda
    • 15.06.2009
    • 13315

    #16
    Hallo Nina,
    ich musste auch erst mal nachfragen ^^
    Das was Xtra da noch braucht ist der ganze Rest der Fehlermeldung (mit on line blabla), damit der weiß, wo der Fehler genau auftaucht ^^

    Hier noch Infos zu dem Fremdwort: http://de.wikipedia.org/wiki/Stacktrace

    Viele Grüße

    PS: Danke an Toflar für die einfache Übersetzung für mich *g*
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

    Kommentar

    • xchs
      Administrator
      • 19.06.2009
      • 14682

      #17
      Ganz genau: Stacktrace or GTFO!

      Klicke auf die Grafik für eine vergrößerte Ansicht

Name: stacktrace-or-gtfo.jpg
Ansichten: 1
Größe: 88,2 KB
ID: 919296

      Nur leider gibt es dazu weder Stack Trace noch Einträge in der "system/logs/error.log". Ich jedenfalls erhalte nichts dergleichen.

      Beim Speichern des Datensatzes wird lediglich unterhalb des Feldes "Maximum" der folgende Fehler rot angezeigt:
      Code:
      Query error: 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 'maxValue=NULL WHERE id='140'' at line 1 (UPDATE tl_catalog_fields SET maxValue=NULL WHERE id='140')


      Ich hätte daher - ähnlich wie Ruud - angenommen, dass es eventuell tatsächlich einen Konflikt mit der Feldbezeichnung gibt, zumal MAXVALUE ein reserviertes Wort in MySQL ist.
      MAXVALUE represents an integer value that is always greater than the largest possible integer value (in mathematical language, it serves as a least upper bound).
      Angehängte Dateien
      Zuletzt geändert von xchs; 27.01.2012, 12:40.
      Contao Community Administrator

      [Unterstützungsmöglichkeiten]
      sigpic

      Kommentar

      • xtra
        Maintainer
        • 02.07.2009
        • 2007

        #18
        Mhhh... das ist nun ganz schoen interessant, das haut uns nun aber ganz schoen rein.

        Die Info dass es direkt unter dem Feld auftaucht sagt mir nun schon mal, dass das Problem also in der DC_Table auftritt.

        Dass MAXVALUE inzwischen(!) ein reserviertes Wort ist, das war mir auch schon bewusst, ich habe jedoch keine Stelle im Code vom Catalog gefunden, wo dieses Feld unescaped abgefragt wird.
        Das Problem ist also in der DC_Table, welche beim generieren der Queries ein WHERE ohne escaping macht.

        Ich habe nun folgende Moeglichkeiten:
        - DC_Table.php fixen und damit erst in zukynftigen Versionen von Contao wieder sauber funktionieren.
        - Das Feld im Catalog umbenennen und damit inkompatibel zu allen bestehenden Installationen werden.

        Ich tendiere momentan zu letzterem, muss dann jedoch eine runonce.php bauen, welche die bestehenden Installationen migriert, Die hierin enthaltenen Probleme sind jedoch schon hinlaenglich bekannt.
        Muss man yberlegen.

        Gruss
        Chris
        Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

        Kommentar

        • StefanS
          Contao-Nutzer
          • 29.02.2012
          • 9

          #19
          maxValue

          Blöde Frage, aber gibt es hierfür schon eine Lösung?

          Kommentar

          • RoGer
            Contao-Nutzer
            • 28.08.2009
            • 213

            #20
            Syntaxfehler bei Feldtyp Dezimal/Nummer

            Hallo,

            beim Feld-Typ "Dezimal" bzw. "Nummer" erhalte ich immer einen SQL-Syntaxfehler beim "Maximum" - egal welche Zahl ich eingebe oder ob das Feld leer ist.
            Gibt's mittlerweile eine Lösung ? (contao 2.10.4)

            DANKE

            Roland
            P.S. Ich kenne auch den entsprechenden Thread hier im Forum - leider ohne Lösung (https://www.contao-community.de/show...hlight=Dezimal)



            Uploaded with ImageShack.us
            Zuletzt geändert von RoGer; 06.05.2012, 10:52.

            Kommentar

            • RoGer
              Contao-Nutzer
              • 28.08.2009
              • 213

              #21
              ähmm! Ich will ja nicht stören. Aber hat das überhaupt jemand gelesen ?

              Roland

              Kommentar

              • Jogibär
                Contao-Nutzer
                • 13.12.2009
                • 137

                #22
                Ich habe eine Website mit Version 2.11.2, auf goneo, dort funktioniert die Eingabe eines Decimal- und Number-Feldes.
                Es ist dort MySQL 5 installiert.
                Hier auf meinem lokalen Server (auch MySQL 5) und einer Version 2.11.3 tritt wiederum dieser Fehler auf.

                Kennt jemand die Quelle für die letzten Builds, wo dieser Fehler u.U. schon behoben ist?
                Auf github finde ich irgendwie keinen Link zum Download.

                EDIT:
                Ok, ich habe nun eine SVN-Version gefunden und auch heruntergeladen.
                Vielleicht funktioniert es ja hiermit.
                Zuletzt geändert von Jogibär; 18.05.2012, 20:12.

                Kommentar

                • Nina
                  Contao-Urgestein
                  • 04.06.2009
                  • 4755

                  #23
                  Bin hier auf einem Host Europe-Webspace und habe den Fehler auch hier wieder *seufz*

                  catalog 2.0.0 beta2 58 (ER)
                  PHP Version 5.2.17
                  MySQL 5.5.25

                  Code:
                  Query error: 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 'maxValue='99999' WHERE id='9'' at line 1 (UPDATE tl_catalog_fields SET maxValue='99999' WHERE id='9')

                  Kommentar

                  • Nina
                    Contao-Urgestein
                    • 04.06.2009
                    • 4755

                    #24
                    Gibt es dafür mittlerweile eine Lösung? Wenn nicht, wer traut sich eine Lösung zu? Ich bin auch bereit dafür zu bezahlen, da ich das wirklich schnellstmöglich benötige (geht um eine Adressdatenbanken für Hilfsorganisationen die Frauen in Not helfen - da sollten die Daten natürlich unbedingt passen!).

                    Kommentar

                    • Jogibär
                      Contao-Nutzer
                      • 13.12.2009
                      • 137

                      #25
                      Hallo Nina,

                      wie ja auch schon vermutet, liegt es wohl an dem geschützten Wort "MaxValue", siehe hier: http://bugs.mysql.com/bug.php?id=59871

                      Ich habe intern alle Vorkommnisse von "MaxValue" in "MaxVal" umbenannt und das Nummernfeld funktioniert wieder ohne Fehlermeldung und inkl. der Prüfung auf den max. Wert.
                      Auch der Filter, in dem das Nummernfeld in meiner Seite verwendet wird, funktioniert. Ich kann bisher keine Nachteile feststellen.

                      Vielleicht wurde diese einfach Lösung aus Gründen der Rückwärtskompatibilität nicht so umgesetzt oder es gibt andere Knackpunkte.
                      Wäre toll, wenn sich noch ein Experte auf diesem Gebiet dazu äußern könnte.

                      PS: Ich verwende Version 2.0.0 beta2, Build 61

                      Kommentar

                      • Nina
                        Contao-Urgestein
                        • 04.06.2009
                        • 4755

                        #26
                        Hallo Jürgen,

                        verstehe ich das richtig, dass du einfach durch alle Files aus dem catalog-Ordner gegangen bist und diese Werte ausgetauscht hast?

                        Laut meiner Suche kommt es in folgenden Files vor:

                        Catalog.php
                        ModuleCatalog.php
                        dca/tl_catalog_fields.php

                        Ich habe darauf geachtet, dass ich nur die Stellen austausche, an denen wirklich ausschließlich MaxValue in genau der Schreibweise steht, nicht etwa irgendwas wie resetMinMaxValues.

                        Außerdem kommt es noch in der config/database.sql vor. Dort aber in dieser Form:
                        Code:
                        `maxValue` int(10) NULL default NULL,
                        Soll das ebenfalls ausgetauscht werden? Da mein Katalog schon existiert, müsste ich dann zusätzlich via PHPmyAdmin das entsprechende Tabellenfeld umbenennen.

                        Kommentar

                        • Jogibär
                          Contao-Nutzer
                          • 13.12.2009
                          • 137

                          #27
                          Korrekt, ich habe mir zuvor alle Dateien im Finder auflisten lassen und die dann der Reihe nach mit Suchen-Ersetzen bearbeitet.
                          Ich habe auch nur nach "MaxValue" als ganzem Wort gesucht.

                          Bei mir waren es folgende Dateien:
                          • catalog/Catalog.php
                          • catalog/config/database.sql
                          • catalog/ModuleCatalog.php
                          • catalog/dca/tl_catalog_fields.php
                          • catalog/languages/de/tl_catalog_fields.php
                            Je nach Bedarf dann noch die weiteren sprachabhängigen Definitions-Dateien.


                          PS: Ja, ich habe das bei mir auch nachträglich erst gemacht und einfach in PHPMyAdmin abgeändert.
                          Zuletzt geändert von Jogibär; 03.07.2012, 12:31.

                          Kommentar

                          • Nina
                            Contao-Urgestein
                            • 04.06.2009
                            • 4755

                            #28
                            Die Fehlermeldung kommt jetzt nicht mehr. Danke

                            Kommentar

                            • mschindler
                              Contao-Nutzer
                              • 25.08.2011
                              • 228

                              #29
                              Hallo Nina,
                              hast du in deinem Projekt einen Filter im Einsatz, der auf Dezimalzahlen Felder geht und nach der Anpassung des hier beschriebenen Fixes wieder funktionierte.
                              Ich habe in einer Installation local und Live auch das Problem. Der Fehler schaut bei mir wie folgt aus und ich habe die Dezimalzahlen Felder in der DB in Verdacht.


                              Vielleicht ist hier ein Zusammenhang, das die Dezimalzahlen Felder schon nicht richtig in der DB angelegt werden.

                              Viele Grüße

                              Markus


                              Zitat von Nina Beitrag anzeigen
                              Die Fehlermeldung kommt jetzt nicht mehr. Danke
                              Offizieller Contao Premium Partner seit 2016
                              codesache.de
                              ---
                              Mitglied der Contao Community Bayern
                              Aktuelle Termine zur Contao Community Bayern: contao-bayern.de

                              Kommentar

                              • sr-tag
                                Contao-Nutzer
                                • 13.12.2010
                                • 74

                                #30
                                MYSQL-Querys mit `feldname`

                                Hallo,

                                Ich schreibe meine MySQL-Querys (fast) immer mit `` wenn es Feldnamen oder Tabellennamen sind dann ist es egal ob der Inhalt ein geschützter Name ist oder nicht. Denn dann weiß MySQL genau das es ein Feldname bzw ein Tabellenname und nicht ein zu interpretierender Wert ist.

                                Code:
                                z.B.: INSERT INTO `testtable`(`feld1`,`feld2`) SET('1','2');
                                Wichtig hierbei ist die Art der Zeichen zu beachten die Felder werden mit den schräg-nachunten-rechts - Hochkomma (oder wie die auch immer richtig heißen) und deren Werte mit senkrechten Hochkomma eingeschlossen.

                                Da es leider vom Contao-Core schon nicht richtig gemacht wird, wird bei Aktionen wie kopieren eines Eintrages leider dannn immer dieser Fehler auftreten. Und man muss dann mit Umbenennung der Felder reagieren.

                                UPDATE:

                                Eine globale Contao-Lösung hab ich mal auf github als Issue 5666 gepostet:
                                bekannt bis Contao 2.11.11 Da es bei bei der Bennenung von Datenbankfelder dazu kommen kann das die Feldnamen geschützte Begriffe sind z.B. maxValue und die Datenbankfelder nicht in schrägen Hochko...



                                Gruß Sven
                                Zuletzt geändert von sr-tag; 17.04.2013, 17:03.

                                Kommentar

                                Lädt...