mysql_affected_rows() und UPDATE

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

  • mysql_affected_rows() und UPDATE

    Hallo,

    in einem Script wird

    mysql_query("UPDATE a SET b='$c' WHERE c='bla' AND b='$d'");

    exakt ausgeführt,
    trotzdem liefert direkt dannach

    mysql_affected_rows()

    = 0

    Wo liegt das Problem

  • #2
    die bedingung c + b wurde nicht erfüllt. dadurch konnte mysql nichts finden und auch nichts updaten.

    ps. gehört aber ins sql-forum.
    kann das bitte einer verschieben? danke.
    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
      ... doch, die Bedingung b und c wurden erfüllt, und in der Datenbank wurde auch der entsprechnede Eintrag bearbeitet.
      Mit phpMyAdmin hab es ich nach durchlauf des Scripts überprüft.
      Trotzdem liefert mysql_affected_rows(), es gleich eine Zeile weiter, eine 0.

      Wieso ins SQL-Forum?
      Thema ist doch eigentlich mysql_affected_rows() oder?
      Wie auch immer,
      was ist die Ursache?

      Gruß ->X³<-

      Kommentar


      • #4
        du musst einen fehler haben. hast du mal die query im phpmyadmin MANUELL getätigt?

        ins sql daher, da es eben wohl ein sql problem zu sein scheint ...
        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


        • #5
          Bestätigen ???
          ....

          Das UPDATE wird doch exakt richtig in der Datenbank durchgeführt.
          Und wenn die WHERE-Bedingung nicht erfüllt ist, passiert auch nichts, was ja richtig ist.

          Kann es daran liegen, das nur ein Datensatz in der Tabelle liegt?

          Kommentar


          • #6
            was meinst du mit 'Bestätigen ???' ???

            bei einem update ist egal wieviele datensätze vorhanden sind. es muss halt nur mindestens einer drin sein. ist ja logisch.

            hast du das update auch mal ohne WHERE gemacht? wenn nur ein DS enthalten ist, ist das ja nciht schlimm. was sagt dann affect?
            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


            • #7
              mysql_affected_rows() brint nur ein Ergebnis > 0 wenn Records tatsächlich aufgrund der WHERE Bedingung upgedatet wurden.

              Dein Zusatz
              Original geschrieben von -&gt;X³&lt;-
              Kann es daran liegen, das nur ein Datensatz in der Tabelle liegt?
              irritiert mich ein wenig. Trifft nun für diesen einen Datensatz die Bedingung zu, ja oder nein? Wenn nein, ist es logisch dass der Wert von mysql_affected_rows() 0 ist.


              Post mal bitte das Ergebnis, wenn Du es so machst:

              PHP-Code:
              $query "UPDATE a SET b='$c' WHERE c='bla' AND b='$d'";

              print 
              "query:$query<br>\n"// Vielleicht sieht man hier bereits was 

              $result mysql_query($query)
                 or print 
              "&gt;&gt;&gt; MySQL-Error: ".mysql_errno()." -&gt; ".mysql_error()."<br>\n";  // oder hier

              print mysql_affected_rows(). " Records wurden geändert<br>\n"
              Zuletzt geändert von hand; 28.12.2002, 16:22.

              Kommentar


              • #8
                Thanxx2@ll ...

                Hab mein Script ein wenig umgeschrieben.
                Problem beseitigt.

                Trotzdem bleibt die Antwort offen.


                ... bis zum nächsten mal

                Kommentar

                Lädt...
                X