Ergebnis 1 bis 4 von 4

Thema: Fehler bei eigener Datenbankabfrage unter PHP 7.2

  1. #1
    Contao-Fan
    Registriert seit
    08.03.2010.
    Beiträge
    451

    Frage Fehler bei eigener Datenbankabfrage unter PHP 7.2

    hallo,
    seit ich auf php 7.2. umgestellt habe bekomme ich Fehlermeldungen auf den Seiten auf denen ich eigene Datenbankabfragen vornehme.
    Code:
    Warning: Use of undefined constant … - assumed '…' (this will throw an Error in a future version of PHP) in templates/php/DE/abendkarte.php on line 8
    
    #0 templates/php/DE/abendkarte.php(8): __error(2, 'Use of undefine...', '/Applications/M...', 8, Array)
    #1 system/modules/core/library/Contao/InsertTags.php(1113): include('/Applications/M...')
    #2 system/modules/core/library/Contao/Controller.php(692): Contao\InsertTags->replace('...', false)
    #3 system/modules/core/classes/FrontendTemplate.php(100): Contao\Controller::replaceInsertTags('...', false)
    #4 system/modules/core/pages/PageRegular.php(190): Contao\FrontendTemplate->output(true)
    #5 composer/vendor/verstaerker/i18nl10n/src/system/modules/i18nl10n/pages/PageI18nl10nRegular.php(68): Contao\PageRegular->generate(Object(Contao\PageModel), true)
    #6 system/modules/core/controllers/FrontendIndex.php(285): Verstaerker\I18nl10n\Pages\PageI18nl10nRegular->generate(Object(Contao\PageModel), true)
    #7 index.php(20): Contao\FrontendIndex->run()
    #8 {main}
    Hier die Zeile 8 der php datei:
    Code:
    $kategorie = "Hauptgang";
    $arrAbendkarteGerichte = \Database::getInstance()->prepare("SELECT * FROM speisekarte WHERE Anzeigen = 'ja' AND `Abendkarte V1` != '' AND Kategorie = '".$kategorie."'")->execute(array(…))->fetchAllAssoc();
    kann mir jemand sagen wie ich die Abfrage abändern muss damit diese auch unter PHP 7.2 funktioniert.

    Danke!

  2. #2
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943

    Standard

    Erstens ist die Meldung eine Warnung und kein Fehler:

    Zitat Zitat von atomfried Beitrag anzeigen
    Code:
    Warning: Use of undefined constant … - assumed '…' (this will throw an Error in a future version of PHP) in templates/php/DE/abendkarte.php on line 8
    Die ... sind exakt so in Deinem Code (das wäre falsch und der Grund für die Warnung), oder hast Du hier gekürzt?

    Code:
    $kategorie = "Hauptgang";
    $arrAbendkarteGerichte = \Database::getInstance()
      ->prepare("SELECT * FROM speisekarte WHERE Anzeigen = 'ja' AND `Abendkarte V1` != '' AND Kategorie = '".$kategorie."'")
      ->execute(array(…))->fetchAllAssoc();
    Da Du in Deinem Query keine Platzhalter hast (das wären ? im Query) brauchst Du in execute() auch keine Werte dafür übergeben. Sauberer wäre es aber schon:

    Code:
    $kategorie = "Hauptgang";
    $arrAbendkarteGerichte = \Database::getInstance()
      ->prepare("SELECT * FROM speisekarte WHERE Anzeigen = 'ja' AND `Abendkarte V1` != '' AND Kategorie = ?")
      ->execute($kategorie)
      ->fetchAllAssoc();
    [/QUOTE]
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  3. #3
    Contao-Urgestein Avatar von cliffparnitzky
    Registriert seit
    08.10.2010.
    Ort
    Lüneburg
    Beiträge
    2.451
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ganz hinten das "execute(array(…))" macht das Problem. Ist scheinbar auch rech nutzlos, weil die Query keine Parameter erwartet. Also "array(…)" löschen sollte helfen.

  4. #4
    Contao-Fan
    Registriert seit
    08.03.2010.
    Beiträge
    451

    Daumen hoch Vielen Dank!

    funktioniert prima!

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
  •