Insert Into

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

  • Insert Into

    Ich komme nicht mehr weiter warum wird bei diesen befehl nichts in die datenbank geschrieben?

    Alle Variablen sind besetzt. Der sql echo gibt auch alles richtig an nur es wird eben nicht reingeschrieben.

    PHP-Code:
    if(isset($_POST['nachricht'])) {
    $name $_SESSION["user_nickname"];
    $nachricht $_POST['nachricht'];
    $betreff $_POST['betreff'];
    $empfaenger $_POST['empfaenger'];

    $sql "INSERT INTO $empfaenger (nickname, 
    nachricht, betreff) VALUES 
    $name$nachricht$betreff";
    echo 
    $sql;
    $result mysql_query($sql);

    Zuletzt geändert von theaims; 18.07.2006, 21:07.

  • #2
    1. Lies die Regeln!
    2. Schalts error_reporting an!
    3. mysql_error?
    4. Wie sieht die Query im Klartext aus? Oder machst du die Testausgabe umsonst?
    5. Wie sieht die DB aus? Wie die Tabelle?
    6. Trifft die Bedingung überhaupt zu?

    Kommentar


    • #3
      Es gibt kein Error.

      Die Query seiht so aus:

      INSERT INTO test (nickname, nachricht, betreff) VALUES TEST1, Test2, Kein Betreff


      Tabellen:

      id nickname nachricht betreff

      Wenn ich das teil in phpmyadmin ausführe kommt folgendes:

      #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TEST1, Test2, Kein Betreff' at line 1

      Kommentar


      • #4
        natürlich kommt kein error, wenn du meine hinweise nicht befolgst und nur auf die hälfte meiner antwort eingehst...

        Schonmal was davon gehört, dass man Strings in "Anführungszeichen" packt?

        Kommentar


        • #5
          So komme ich auch nicht zum ergebnis:

          PHP-Code:
          $sql "INSERT INTO '$empfaenger' (nickname, nachricht, betreff) VALUES '$name', '$nachricht', '$betreff'"

          Kommentar


          • #6
            man man man... fehlermeldung?

            Kommentar


            • #7
              nur die wieder:

              You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''test' (nickname, nachricht, betreff) VALUES 'TEST1, Test2, Kein Betreff' at line 1

              Mein Code:

              PHP-Code:
              if(isset($_POST['nachricht'])) {
              $name $_SESSION["user_nickname"];
              $nachricht $_POST['nachricht'];
              $betreff $_POST['betreff'];
              $empfaenger $_POST['empfaenger'];

              $sql "INSERT INTO '$empfaenger' (nickname, nachricht, betreff) VALUES '$name', '$nachricht', '$betreff'";
              echo 
              $sql;
              $query mysql_query($sql) or die(mysql_error()); 

              Zuletzt geändert von theaims; 18.07.2006, 23:18.

              Kommentar


              • #8
                Um den Tabellennamen natürlich keine Hochkommata.

                Vor weiteren Fragen dieser Coleur solltest du dich aber vielleicht mal selbst ein bisschen mit der Syntax beschäftigen ...
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Code:
                  $sql = "INSERT INTO `$empfaenger` (nickname, nachricht, betreff) VALUES ('$name', '$nachricht', '$betreff')";
                  Gegenfrage: welches Leerbuch benützt du, damit es auf die Abschreckliste gesetzt werden kann?

                  $empfaenger ist kein guter (zweckmässiger) Variabelnname für eine Tabelle.

                  Kommentar


                  • #10
                    Erfahrungsgemäss gilt, dass der mysql-Fehler meistens unmittelbar links von der angegebenen Stelle ist, oder beim ersten Buchstaben der angegebenen Stelle. Auch hier ist es so.

                    Kommentar


                    • #11
                      also bei mir benutz ich immer das wenn ich variablen in sql abfragen benutze versuch es doch ma


                      ' ".$variable." '

                      Kommentar


                      • #12
                        Habe es jetzt rausgefunden. Es fehlten nur die ( )

                        Kommentar


                        • #13
                          "nur" ist gelogen!

                          Kommentar

                          Lädt...
                          X