Fehlersuche

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

  • Fehlersuche

    Hi,

    Ich habe eine Datenbankabfrage die nicht funktioniert und deren fehler ich absolut nicht finden kann.

    PHP-Code:
    mysql_query ("insert into TEST_Bestellungsdaten (Bemerkungen) values ('$neu') WHERE Rechnungsnr LIKE $best[Rechnungsnr]"); 
    Es wird folgender Fehler ausgegeben:
    You have an error in your SQL syntax near 'WHERE Rechnungsnr LIKE Datensatzrechnungsnnummer' at line 1

    alle variablen in dieser abfrage erhalten einen wert, das habe ich schon getestet...die spalten und tabellennamen stimmen auch

  • #2
    umbrüche raus und mysql_error() nutzen!
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Re: Fehlersuche

      PHP-Code:
      mysql_query ("insert into TEST_Bestellungsdaten (Bemerkungen) values
       ('
      $neu') WHERE Rechnungsnr LIKE $best[Rechnungsnr]"); 
      ändern in


      PHP-Code:
      mysql_query ('insert into TEST_Bestellungsdaten (Bemerkungen) values
       ("'
      .$neu.'") WHERE Rechnungsnr LIKE "'.$best['Rechnungsnr'].'"'); 

      Kommentar


      • #4
        die änderung funktioniert auch nicht...

        jetzt kommt folgende Fehlermeldung:
        Notice: Use of undefined constant Bemerkungen - assumed 'Bemerkungen' in /XXXXX on line 121

        was bedeutet das ?

        Kommentar


        • #5
          Re: Fehlersuche

          PHP-Code:
          $neu mysql_real_escape_string($neu);
          $sql 'INSERT INTO TEST_Bestellungsdaten (Bemerkungen) '
                
          .'VALUES ('.$neu.') WHERE Rechnungsnr LIKE '.$best['Rechnungsnr'];
          echo 
          $sql;    // sag uns, was hier ausgegeben wird
          mysql_query($sql) or die(mysql_error()); 

          Kommentar


          • #6
            es wird folgendes ausgegeben:

            INSERT INTO TEST_Bestellungsdaten (Bemerkungen) VALUES (Dateninhalt) WHERE Rechnungsnr LIKE XXXXX You have an error in your SQL syntax near 'Dateninhalt) WHERE Rechnungsnr LIKE XXXXX' at line 1

            Kommentar


            • #7
              so ich hab jetzt den "WHERE" Syntax weggelassen und dann wir eine neue zeile erstellt in dessen Bemerkungen feld das steht was reingehört - d.h. das einzige was nicht funktioniert ist das eintragen in die richtige zeile - wobei dort aber das spaltenfeld und die variable stimmt...

              Kommentar


              • #8
                Re: Re: Fehlersuche

                Moment mal (ich sollte genauer lesen )! Du meinst UPDATE oder?
                INSERT geht nicht mit WHERE, denn INSERT erzeugt ein neues Tupel (Zeile) und da kann ja noch nichts drinstehen. Demzufolge würde WHERE immer negativ ausgewertet und nie etwas eingefügt. Das mag wohl auch der Grund sein, warum ein INSERT-Statement überhaupt keine WHERE-Klausel haben kann. Siehe http://dev.mysql.com/doc/mysql/en/insert.html
                PHP-Code:
                $neu mysql_real_escape_string($neu);
                $sql "UPDATE TEST_Bestellungsdaten (`Bemerkungen`)
                 VALUES ('
                {$neu}') WHERE `Rechnungsnr` LIKE {$best['Rechnungsnr']}"
                Außerdem ...
                Prüfe ob die Spalte Rechnungsnr wirklich so heißt (Groß-/Kleinschreibung).
                Ferner sollte es, wenn $best['Rechnungsnr'] eine Zahl ist,
                PHP-Code:
                $sql "... WHERE `Rechnungsnr` = {$best['Rechnungsnr']}"
                heißen. Ist es ein String, mußt du ihn in ' einschließen und damit es wirklich Sinn macht, sollte er dann die Gestalt '%blablubb%' haben.

                Kommentar

                Lädt...
                X