unknown column in field list (aber nicht bei Zahlen)

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

  • unknown column in field list (aber nicht bei Zahlen)

    Frohe Ostern erstmal.

    ich habe Probleme mit einer UPDATE Anweisung. Aus einem Grund den ich nicht nachvollziehen kann, kommt die Fehlermeldung

    unknown column 'köln' in field list

    dass ich keine keine Spalte 'köln' habe ist mir bewusst, aber ich möchte ja 'köln' in die Spalte 'ort' eintragen.

    wenn ich jedoch in mein Formular statt der Orte einfach nur Zahlen eintrage, meldet mir mein Script brav: Ihre Daten wurden eingetragen!

    Hat jemand eine Idee wo ich meinen Fehler suchen muss. Unten nochmal der code.

    PHP-Code:
    $neueintrag 'UPDATE $table SET jahr= '.$neujahr.', ort= '.$neuort.' WHERE nr = '.$_POST['aendern'].''
    danke im vorraus

  • #2
    Da musst du irgend nen Fehler mit deinen ' gemacht haben. In deinem geposteten Code ist hinte zB schon ein ' zuviel.

    Zahlen sind keine String und brauchen daher nicht in ' eingeschlossen zu werden.

    Kommentar


    • #3
      'UPDATE $table SET jahr= '

      das $table wird nicht ausgewertet weil in einfachen Anführungszeichen.

      Hingegen ist '' am Schluss richtig aber überflüssig, es ist ein leerer String.

      Du kannst noch ein echo "neueintrag=##$neueintrag##<br />" machen, um
      den sql Befehl zu sehen. Die ## dienen als Abgrenzer um es genau zu sehen.

      Der Fehler inkl. einfache Anführungszeichen deutet aber darauf hin, dass Dein
      posting nicht genau dein php-code ist, und /oder im $neuort ein Komma drin
      steht.
      Zuletzt geändert von miximaxi; 17.04.2006, 13:59.

      Kommentar


      • #4
        $neueintrag = 'UPDATE $table SET jahr= '.$neujahr.', ort= '.$neuort.' WHERE nr = '.$_POST['aendern'].'';

        wie schon gesagt: $table wird nicht ausgewertet.

        und: jahr= "'.$neujahr.'", ort= "'.$neuort.'"
        so sollte es gehn.

        Kommentar


        • #5
          Danke an alle es funktionert jetzt, habe das $table durch den Namen der Tabelle ersetzt. Und die die Hochkommata durch doppelte Anführungszeichen ergänzt.

          PHP-Code:
          $neueintrag 'UPDATE wanderkino SET jahr= "'.$neujahr.'", ort= "'.$neuort.'" WHERE nr = '.$_POST['aendern'].''
          Wenn Ihr noch Bemerkungen zum code habt (z.B. zu Konventionen und gutem Code) haltet Euch nicht zurück, als Anfänger bin ich über jeden Tipp dankbar.

          Ansonsten schönen Feiertag Euch allen.

          Kommentar


          • #6
            ja kleiner tipp noch:
            du änderst doch nur eine spalte nehm ich mal an oder?
            es is ganz gut wenn du ein ein LIMIT 1 an dein query dranhängst, weil er dann die tabelle nur bis zu dem einen punkt durchsucht wo nr = $_POST['aendern'] ist. ohne das LIMIT 1 sucht er danach noch weiter und das geht auf die performance.

            $neueintrag = 'UPDATE wanderkino SET jahr= "'.$neujahr.'", ort= "'.$neuort.'" WHERE nr = '.$_POST['aendern'].' LIMIT 1';

            Kommentar


            • #7
              @MarkusW: Das klingt gut und wird direkt umgesetzt

              Kommentar


              • #8
                Er ändert zwei Spalten, aber eventuell nur eine Zeile (falls nr nur einmal in der Tabelle vorkommt.)
                Und das Optimieren würde ich eher dem sql selber überlassen, oder einen Index zu nr machen. Aber wegen weniger als 1000 Einträgen inder Tabelle spielt das kaum eine Rolle.

                Kommentar


                • #9
                  Original geschrieben von miximaxi
                  Aber wegen weniger als 1000 Einträgen inder Tabelle spielt das kaum eine Rolle.
                  naja das stimmt wohl mit sowas arbeite ich normalerweise nicht.
                  aber es kann nicht schaden der datenbank ein bischen optimierungs denkerei abzunehmen.

                  Kommentar


                  • #10
                    Original geschrieben von MarkusW
                    naja das stimmt wohl mit sowas arbeite ich normalerweise nicht.
                    aber es kann nicht schaden der datenbank ein bischen optimierungs denkerei abzunehmen.
                    wenn auf nr ein Primary liegt würde ich das limit1 eher sogar weg lassen, weil es spätere Blicke auf den Code trüben mag ... mysql schafft es auch ohne zusätzliche Hilfe die Queries gut zu optimieren, wenn man wirklich helfen will, optimiere man die SELECTs mit EXPLAIN SELECT bla bla etc...pp und mache aus Haufen ORs ein IN, etc. benutze also das was mysql an Möglichkeiten bietet, so gut wie möglich. Den Rest macht das Ding alleine ganz gut, ansonsten wäre es nicht so verbreitet ^^


                    btw. CODE UMBRECHEN
                    ich hab auf 1024 nen Scrollbalken

                    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                    Wie man Fragen richtig stellt

                    Kommentar

                    Lädt...
                    X