Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehlerhaftes SQL-Statement?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Fehlerhaftes SQL-Statement?

    Hallo,

    ich habe lokal eine Datenbank inkl. Interface erstellt für den privaten Gebrauch und habe nun versucht das auf einen Server zu implementieren.

    Die Verbindungsinformationen habe ich geändert und die Verbindung zur DB besteht auch, mir werden immerhin Daten angezeigt, jedoch kann ich keinen Eintrag tätigen.

    Ich füll ein Formular aus und übergebe dies per POST und prüfe ob $_POST['submit'] gesetzt wurde, wenn ja, werden diverse Überprüfungen zum Formular durchgeführt und im Anschluss, sollte alles korrekt sein, wird ein SQL-Statement mit den Inhalten ausgeführt.

    PHP-Code:
    INSERT INTO `zahlungen` (`zeitstempel`, `kategorie`, `beschreibung`, `summe`, `istBezahlt`) VALUES ('$zeitstempel'$kategorie', '$beschreibung', '$summe', '$istBezahlt') 
    PHP-Code:
    if(isset($zeitstempel) AND isset($kategorie) AND isset($beschreibung) AND isset($summe) AND isset($istBezahlt)) {
        
    $sqlErfassen    =    $connect->query("INSERT INTO `zahlungen` (`zeitstempel`, `kategorie`, `beschreibung`, `summe`, `istBezahlt`) VALUES ('$zeitstempel', $kategorie', '$beschreibung', '$summe', '$istBezahlt')");
        if(
    $sqlErfassen->insert_id 0) {
            echo 
    '<p class="success">Die Zahlung wurde erfolgreich erfasst.</p>';
        } else {
            echo 
    '<p class="error">Es ist bei der Übertragung der Zahlung ein Fehler aufgetreten.</p>';
        }

    Das ist mein Statement, jedoch bekomme ich immer folgende Fehlermeldung.

    PHP-Code:
    NoticeTrying to get property of non-object in /home/.sites/459/site9273156/web/finanz/index.php on line 75 
    Meine Datenbankstruktur sieht wie folgendermaßen aus
    PHP-Code:
    id int(11primary ai
    zeitstempel int
    kategorie int
    beschreibung varchar
    (500)
    summe double
    istAktiv int 
    Übersehe ich den Fehler einfach oder habe ich einen grundlegenderen Fehler?

    LG
    Rier

  • #2
    Bin leider auch derzeitiger Umsteiger auf mysqli und PDO, aber kann es sein, dass insert_id member of mysqli ist?
    Sprich das du
    PHP-Code:
    $connect->insert_id 
    wählen muss?
    Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

    Kommentar


    • #3
      Dein Quellcode ist anfällig für SQL Injections und du solltest dir das Thema String Concatenation nochmals zu Gemüte führen. Falls du MySQLi verwendest, dann verwende doch einfach Prepared Statements anstatt deinen Query so zusammen zu basteln.

      Kommentar


      • #4
        Zudem

        PHP-Code:
        INSERT INTO `zahlungen` (`zeitstempel`, `kategorie`, `beschreibung`, `summe`, `istBezahlt`) VALUES ('$zeitstempel'$kategorie', '$beschreibung', '$summe', '$istBezahlt
        stimmen die Anführungszeichen etc. hier hinten und vorne nicht (siehst du schon am Syntaxhighlightning).

        mfg wolf29
        while (!asleep()) sheep++;

        Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

        Kommentar


        • #5
          Moewe, ja - stimmt! Da müsste $connect->insert_id stehen.

          Und wolf29, danke für deine Hilfe, mir wäre das wahrscheinlich sonst nicht aufgefallen und ich wäre total sauer geworden.

          LG
          Rier

          Kommentar

          Lädt...
          X