mysql_affected_rows ist komisch...

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

  • mysql_affected_rows ist komisch...

    Hallo ich habe ein etwas seltsames Verhalten von mysql_affected_rows bei mir festgestellt.

    Auf dem Webserver, mit einer älteren MySQL Version funktioniert folgendes:

    PHP-Code:
    $show mysql_query("SELECT * FROM tango_sprungmarken WHERE kurs_id='".$_SESSION['kurs']."' ");

    $anzahl mysql_affected_rows($show); 
    Local jedoch, mit MySQL 4.1.14 tut mysql_affected_rows nur bei Angabe der aktiven Verbindung zur DB.
    Also:

    PHP-Code:
    $show mysql_query("SELECT * FROM tango_sprungmarken WHERE kurs_id='".$_SESSION['kurs']."' ");

    $anzahl mysql_affected_rows($verbindung); 
    Kann mir jemand sagen wieso?


    In der Doku steht ja das sich _affected_ bei einer SELECT anweisung genauso wie _num_ verhält.

    Ich hab jetzt halt folgendes weil das auf beiden Servern tut:

    PHP-Code:
    $show mysql_query("SELECT * FROM tango_sprungmarken WHERE kurs_id='".$_SESSION['kurs']."' ");

    $anzahl mysql_num_rows($show); 

  • #2
    Kein SQL-Problem. Das ist schließlich eine PHP-Funktion.

    Aus dem Manual:
    int mysql_affected_rows ( [resource link_identifier] )
    Parameters

    link_identifier

    The MySQL connection. If the link identifier is not specified, the last link opened by mysql_connect() is assumed. If no such link is found, it will try to create one as if mysql_connect() was called with no arguments. If by chance no connection is found or established, an E_WARNING level warning is generated.
    Darüber hinaus wird dort mehrfach erwähnt, dass
    _affected_ für verändernde Statements benutzt werden soll. Für SELECT ist weiterhin _num_ zu nehmen.

    Kommentar


    • #3
      Hm, jo. Im ersten absatz steht aber das es sich bei SELECT genauso verhält

      For SELECT statements, mysql_affected_rows() works like mysql_num_rows().
      Aber gut habs ja nun.

      Kommentar


      • #4
        Original geschrieben von qualle
        Im ersten absatz steht aber das es sich bei SELECT genauso verhält
        Im ersten Absatz?
        Ich weiß nicht, welches Manual du liest - aber auf php.net steht das weder in der deutschen noch in der englischen Version.
        Stattdessen steht da aber
        Diese Funktion arbeitet nicht in Verbindung mit SELECT-Anfragen, sondern nur bei Anweisungen, die Datensätze verändern. Um die Anzahl der gelieferten Datensätze einer SELECT-Anfrage zu erhalten, benutzen Sie die Funktion mysql_num_rows().
        (Ja, in den Userkommentaren steht irgendwo etwas derartiges - aber es ist nicht ausgeschlossen, dass da auch mal Quatsch steht.)
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar

        Lädt...
        X