Contao-Camp 2024
Ergebnis 1 bis 5 von 5

Thema: tl_metamodel_tabletext SQL-Error

  1. #1
    Contao-Nutzer Avatar von btosh
    Registriert seit
    11.12.2015.
    Beiträge
    58

    Standard tl_metamodel_tabletext SQL-Error

    Hallo zusammen,

    bei einem Projekt wurde mir heute gemeldet, dass im Frontend nicht mehr die Daten eines MetaModels angezeigt werden, bzw. es zu einer Fehlermeldung kommt. Andere MetaModels sind nicht betroffen. Die Übersicht der MetaModels wird angezeigt. Bei Klick auf einen Link zur Detailansicht kommt es zu dem Fehler. Im Backend kann das betroffene MetaModel nicht mehr aufgerufen werden.

    Fehlermeldung bei Aufruf des MetaModels im Backend:

    Was ist das Problem?
    An exception occurred while executing 'SELECT * FROM tl_metamodel_tabletext WHERE att_id=? AND item_id IN (137,151,139,175,36,154,156,172,150,170,106,108,16 9,178,155,176,174,180,163,162,157,128,126,182,160, 164,149,181,125,166) ORDER BY item_id ASC, row ASC, col ASC' with params ["9"]: SQLSTATE[42000]: Syntax error or access violation: 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 'ASC, col ASC' at line 1

    Der Server nutzt PHP Version 7.2.34.

    Compoer.json sieht wie folgt aus:

    Code:
    {
        "type": "project",
        "require": {
            "bastibuck/contao-backendhelper": "^1.3",
            "chibko/contao-css2page": "^1.0",
            "cliffparnitzky/backend-custom-css": "^1.1",
            "codefog/contao-cookiebar": "^2.1",
            "codefog/contao-mobile_menu": "^2.7",
            "contao/conflicts": "*@dev",
            "contao/listing-bundle": "^4.4",
            "contao/manager-bundle": "4.4.*",
            "contao/news-bundle": "^4.4",
            "craffft/css-style-selector-bundle": "^1.6",
            "derhaeuptling/contao-mobilecontent": "^2.2",
            "do-while/contao-backupdb-bundle": "^1.3",
            "fritzmg/contao-lightcase": "^2.1",
            "fritzmg/contao-short-urls": "^1.3",
            "hypergalaktisch/contao-animate": "^2.0",
            "jrgregory/m17-sticky-backend-footer": "^2.0",
            "ma3xl3/contao-easy-favicon": "^2.0",
            "madeyourday/contao-rocksolid-antispam": "^2.0",
            "madeyourday/contao-rocksolid-columns": "^2.0",
            "madeyourday/contao-rocksolid-custom-elements": "^2.2",
            "madeyourday/contao-rocksolid-icon-picker": "^2.0",
            "madeyourday/contao-rocksolid-slider": "^2.0",
            "metamodels/attribute_alias": "^2.1",
            "metamodels/attribute_checkbox": "^2.1",
            "metamodels/attribute_combinedvalues": "^2.1",
            "metamodels/attribute_decimal": "^2.1",
            "metamodels/attribute_file": "^2.1",
            "metamodels/attribute_longtext": "^2.1",
            "metamodels/attribute_numeric": "^2.1",
            "metamodels/attribute_select": "^2.1",
            "metamodels/attribute_tabletext": "^2.1",
            "metamodels/attribute_tags": "^2.1",
            "metamodels/attribute_text": "^2.1",
            "metamodels/attribute_timestamp": "^2.1",
            "metamodels/attribute_url": "^2.1",
            "metamodels/core": "^2.1",
            "metamodels/filter_checkbox": "^2.1",
            "metamodels/filter_fromto": "^2.1",
            "metamodels/filter_range": "^2.1",
            "metamodels/filter_select": "^2.1",
            "metamodels/filter_tags": "^2.1",
            "metamodels/filter_text": "^2.1",
            "oveleon/contao-cookiebar": "^1.7",
            "poldixd/big-cssid-fields": "^1.1",
            "terminal42/contao-ce-access": "^2.0",
            "terminal42/contao-easy_themes": "^2.2",
            "terminal42/notification_center": "^1.5"
        },
        "extra": {
            "contao-component-dir": "assets"
        },
        "scripts": {
            "post-install-cmd": [
                "Contao\\ManagerBundle\\Composer\\ScriptHandler::initializeApplication"
            ],
            "post-update-cmd": [
                "Contao\\ManagerBundle\\Composer\\ScriptHandler::initializeApplication"
            ]
        }
    }
    Für Eure Hilfe wäre ich sehr dankbar. Vielen Dank!

  2. #2
    Contao-Nutzer Avatar von btosh
    Registriert seit
    11.12.2015.
    Beiträge
    58

    Standard

    Also es liegt anscheinend an der Query. Das Wort 'row' müsste in Anführungszeichen gesetzt werden. Dann sollte es funktionieren. Wo kann ich die Query für das MetaModel anpassen?

    Kurz zur Info: Dies ist keine Neuentwicklung. Es ist eine bestehende Website und ist bereits 1–2 Jahre so gelaufen.
    Geändert von btosh (01.07.2021 um 16:08 Uhr)

  3. #3
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.682
    User beschenken
    Wunschliste

    Standard

    auf die Schnelle: hat sich was an der DB-version geändert? Strict mode wird erst ab MM 2.2 (vollständig) unterstützt - siehe Handbuch...

    Bin ab Montag wieder im Büro...

  4. #4
    Contao-Nutzer Avatar von btosh
    Registriert seit
    11.12.2015.
    Beiträge
    58

    Standard

    Es ist so, dass es ein MySQL-Update beim Hoster gab.
    Das Template des Tabletexts ist nicht mehr gelaufen. Wir haben es entsprechend angepasst.

    contao\vendor\metamodels\attribute_tabletext\src\A ttribute\TableText.php

    das hier:

    Code:
    public function getDataFor($arrIds)
        {
            $arrWhere = $this->getWhere($arrIds);
            $builder  = $this->connection->createQueryBuilder()
                ->select('*')
                ->from($this->getValueTable())
                ->orderBy('item_id', 'ASC')
                ->addOrderBy($this->connection->quoteIdentifier('row'), 'ASC')
                ->addOrderBy('col', 'ASC');
    anstatt:

    Code:
    public function getDataFor($arrIds)
        {
            $arrWhere = $this->getWhere($arrIds);
            $builder  = $this->connection->createQueryBuilder()
                ->select('*')
                ->from($this->getValueTable())
                ->orderBy('item_id', 'ASC')
                ->addOrderBy('row', 'ASC')
                ->addOrderBy('col', 'ASC');
    Geändert von btosh (02.07.2021 um 11:41 Uhr)

  5. #5
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.682
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von btosh Beitrag anzeigen
    Es ist so, dass es ein MySQL-Update beim Hoster gab.
    ... also wie vermutet. In MM 2.2 sind die Queries auf den strict mode und reserved words getrimmt - siehe https://metamodels.readthedocs.io/de...-in-mm-22.html

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •