PHP + Mysql Insert

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

  • PHP + Mysql Insert

    Hi,

    könnte mir jemand bitte sagen, was an diesem query nicht stimmt?


    Code:
    $query = sprintf('INSERT INTO tickets (BuchungsNr, KundenNamen, AbflugDatum, Strecke, Betrag, Bemerkung, Sonstiges, PaxAnzahl, Aktion, Verkaufer, Pn, Datum, Typ) 
     	        VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)',
            mysql_real_escape_string($buchungsnummer, $link),
    	mysql_real_escape_string($kundennamen, $link), 
    	mysql_real_escape_string($abflugdatum, $link), 
    	mysql_real_escape_string($strecke, $link) , 
    	mysql_real_escape_string($betrag, $link), 
    	mysql_real_escape_string($bemerkung, $link), 
    	mysql_real_escape_string($sonstiges, $link), 
    	mysql_real_escape_string($paxanzahl, $link), 
    	mysql_real_escape_string($aktion, $link), 
    	mysql_real_escape_string($agent_2, $link), 
    	mysql_real_escape_string($pn_2, $link), 
    	mysql_real_escape_string($datum, $link) ,
    	mysql_real_escape_string($typ, $link)
    );
    
    echo("<pre>$query</pre>");



    Ich kriege den folgenden Fehler:

    Code:
    INSERT INTO tickets (BuchungsNr, KundenNamen, AbflugDatum, Strecke, Betrag, Bemerkung, Sonstiges, PaxAnzahl, Aktion, Verkaufer, Pn, Datum, Typ) 
     	        VALUES (23232323, 232323, 2, 3, 2, Neubuchung, 3, 3, 3, wewe, wewe, 0, Linie)
    
    
    Fehler: MySQL: 1054: Unknown column 'Neubuchung' in 'field list'
    Hat jemand eine Idee?

    Gruss
    Alex

  • #2
    Fehler: 1054 SQLSTATE: 42S22 (ER_BAD_FIELD_ERROR)

    Meldung: Unbekanntes Tabellenfeld '%s' in %s


    Ein Blick ins manual hätte gereicht...

    überprüf mal, ob vllt der tabellenname falsch geschrieben wurde, wenn an dem query ein php-syntax-fehler hinge, würde der bereits beim ersten tabellenfeld auftreten..

    Grüße, dennis
    Musik beflügelt unseren Geist

    Kommentar


    • #3
      Hi,

      nein die Namen stimmen. Wenn ich die "mysql_real_escape_string" entferne und die Variableninhalte in Hochkommata setze funktioniert es.

      Gruss
      Alex

      Kommentar


      • #4
        Setz mal Hochkommata um die Platzhalter...

        dennis
        Musik beflügelt unseren Geist

        Kommentar


        • #5
          Code:
          $query = sprintf('INSERT INTO tickets (BuchungsNr, KundenNamen, AbflugDatum, Strecke, Betrag, Bemerkung, Sonstiges, PaxAnzahl, Aktion, Verkaufer, Pn, Datum, Typ) 
           	        VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')',
                  mysql_real_escape_string($buchungsnummer, $link),
          	mysql_real_escape_string($kundennamen, $link), 
          	mysql_real_escape_string($abflugdatum, $link), 
          	mysql_real_escape_string($strecke, $link) , 
          	mysql_real_escape_string($betrag, $link), 
          	mysql_real_escape_string($bemerkung, $link), 
          	mysql_real_escape_string($sonstiges, $link), 
          	mysql_real_escape_string($paxanzahl, $link), 
          	mysql_real_escape_string($aktion, $link), 
          	mysql_real_escape_string($agent_2, $link), 
          	mysql_real_escape_string($pn_2, $link), 
          	mysql_real_escape_string($datum, $link) ,
          	mysql_real_escape_string($typ, $link)
          );
          So sieht es jetzt aus - aber nun kommt gar keine Ausgabe mehr. Sieht aus, als wäre die php Syntax so nicht in Ordnung. Kann das sein, dass da was durcheinander kommt, wegen den Hochkommata - der ganze INSERT ist ja auch in Hochkommata - da wird doch bestimmt das erste Hochkomma von den Platzhaltern zum Hochkomma vor dem INSERT zugeordnet, oder?

          Alex

          Kommentar


          • #6
            ja..sicher...du musst dann um den query keine hochkomma setzen...doppelte sind dann besser also..schön
            PHP-Code:
            "INSERT INTO .... VALUES...." 
            Musik beflügelt unseren Geist

            Kommentar


            • #7
              Vielen Dank


              Kommentar


              • #8
                hmm...hast du dir eigentlich mal überlegt die mysqli erweiterung zu benutzen? dann könntest du dir den kram sparen und prepared statements nutzen... ist, denk ich, wesentlich einfacher... und mindestens genauso sicher und performant, da der query nicht zur laufzeit geparst wird...

                schau mal ins manual von php, da findest du alles über mysql, vorraussetzung ist allerdings mysql 4.x und php5.x glaub ich..
                Musik beflügelt unseren Geist

                Kommentar

                Lädt...
                X