Update mit Variable funktioniert nicht????

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

  • Update mit Variable funktioniert nicht????

    Hallo,

    ich sitzte jetzt schon länger an dem gleiche Problem und hab schon ganz Google durchsucht. Ich möchte gerne mittels UPDATE einen Eintrag in meiner Datenbank ersetzen. Hier ist erstmal mein Quellcode:

    <?

    mysql_select_db("m3101-1");
    mysql_query("UPDATE zbasar_registrieren SET email1 = $mail WHERE benutzername = '".$_SESSION[user]."'");
    ?>

    Das eigentlich komische ist: Wenn ich die Variable $mail durch 'Hallo' ersetze, dann trägt er in die Datenbank auch Hallo ein. Jetzt trägt er nichts ein. Aber die Variable kann nicht leer sein, da ich sie auch schon mit echo im selben Script auslese und das funktioniert. Es wäre nett, wenn ihr mir weiterhelfen könnt. Ich habe auch schon andere Anführungszeichen probiert, aber das hilft alles nichts.

  • #2
    Den Benutzernamen packst du in der Query in ' ein, $mail aber nicht?

    Lass dir die zusammengesetzte Query mal ausgeben!

    Kommentar


    • #3
      Hi,

      Wenn ich mir die Query ausgeben lasse, dann sagt er mir: Unknown column usw. Aber die Spalte kann nicht unbekannt sein. Wenn ich nur Zahlen eingeben, dann funktioniert es auch. Aber eine Zahl und ein Buchstabe funktioniert nicht.

      Kommentar


      • #4
        Original geschrieben von LOLLe
        Wenn ich mir die Query ausgeben lasse, dann sagt er mir: Unknown column usw.
        Du hast mich mißverstanden. Du läßt dir jetzt wahrscheinlich mysql_error() ausgeben. Ich meinte es aber eher so (wobei mysql_error() auch richtig und wichtig ist):

        PHP-Code:
        $sql "UPDATE .....";
        echo 
        $sql;
        mysql_query($sql) or die(mysql_error()); 

        Kommentar


        • #5
          ah, vielen Dank. Er gibt mir aus, dass die Abfrage leer war. Also

          Query was empty

          An was liegt das oder wie kann das passieren?

          Kommentar


          • #6
            ah, nee, Sorry: Das gibt er mir aus:

            1You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 1

            Bei dem anderen habe ich dem Update die Variable nicht zugeordnet. Also schnell vergessen. Aber was bedeuten diese Zeilen? Stimmt was in meiner Tabelle nicht?

            Kommentar


            • #7
              hi!

              okay, und was gibt echo $sql aus? wie es onemorenerd geschrieben hat? Das wäre auch interessant.

              also
              PHP-Code:
              $sql "UPDATE zbasar_registrieren SET email1=' " .$mail" ' WHERE (benutzername=' " .$_SESSION['user']. " ')";
              echo 
              $sql
              Was wird nun ausgegeben? Das bitte posten! (Bitte die Leerzeichen zwischen den Anführungszeichen entfernen, hab sie zur besseren Verständlichkeit eingefügt: ' " wird zu '")

              Was anderes: Ich empfehle dir, die Variable $_SESSION['...'] vorher auf Manipulation zu prüfen, also ob da z.B. PHP Tags oder SQL Injections drin sind. Aber vll machst du das ja schon...

              Marc

              Kommentar


              • #8
                Jetzt gibt mir sql nur eine 1 zurück!
                Ich bin am verzweifeln...

                Kommentar


                • #9
                  hast du es mit dem syntax versucht, den ich dir gepostet habe und hast du auch die leerzeichen zwischen ' " entfernt?

                  Kommentar


                  • #10
                    Ja, sieht dann so aus:

                    mysql_select_db("m3101-1");
                    $sql = mysql_query("UPDATE zbasar_registrieren SET email1='" .$mail. "' WHERE (benutzername='" .$_SESSION['user']. "')");
                    echo $sql;


                    Er meldet mir eine 1. Was soll das?

                    Kommentar


                    • #11
                      Das komisch ist:

                      Wenn ich direkt oben drüber $mail = "hallo" schreibe, dann trägt er auch hallo ein. Aber $mail gebe ich oben drüber extra aus und da steht auch das drin, was ich in mein Formular geschrieben habe. Wenn ich es jetzt aber in der Update-Methode verwende, dann trägt er nichts ein. Also er trägt etwas Leeres ein, weil $mail wahrscheinlich leer ist, obwohl ich es vorher noch ausgeben kann. Irgendwie verliert $mail seinen wert. Ist das möglich?

                      Kommentar


                      • #12
                        Original geschrieben von LOLLe
                        Ja, sieht dann so aus:
                        Nein, so sieht es nicht aus.

                        Was hast du an den Beispielen, wie du es machen sollst, nicht verstanden?
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          Original geschrieben von LOLLe
                          Ja, sieht dann so aus:

                          mysql_select_db("m3101-1");
                          $sql = mysql_query("UPDATE zbasar_registrieren SET email1='" .$mail. "' WHERE (benutzername='" .$_SESSION['user']. "')");
                          echo $sql;


                          Er meldet mir eine 1. Was soll das?
                          okay, also so geht es auch

                          so wie du es jetzt gemacht hast, gibt dir die anfrage 1 für true, also anfrage alles korrekt zurück!

                          bitte mach wirklich mal folgendes:

                          PHP-Code:
                          $sql "UPDATE zbasar_registrieren SET email1='" .$mail"' WHERE (benutzername='" .$_SESSION['user']. "')";
                          echo 
                          $sql
                          schreib dann, was $sql ausgibt.

                          (ALSO KEIN $sql = mysql_query(....); !!!!)
                          Zuletzt geändert von marc_kessler; 07.05.2006, 15:18.

                          Kommentar


                          • #14
                            Hi, er gibt mir jetzt folgendes aus:

                            UPDATE zbasar_registrieren SET email1='ffg' WHERE (benutzername='reichelt')

                            fgg hab ich in das Formular geschrieben. Hilft das was?
                            Vielen vielen Dank!

                            Kommentar


                            • #15
                              das sieht doch sehr korrekt aus. aber er schreibt es immer noch nicht in die tabelle? (auch nicht mit dem neuen syntax, den wir gepostet haben?)

                              vlg

                              Kommentar

                              Lädt...
                              X