Ankündigung

Einklappen
Keine Ankündigung bisher.

mysql_num_rows funktioniert nicht

Einklappen

Neue Werbung 2019

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

  • mysql_num_rows funktioniert nicht

    Hallo,
    mein Computer bringt mir bei folgendem Quellcode:

    <body>

    <?php
    mysql_connect("localhost","root","");
    mysql_select_db("userlogin");
    $sql="SELECT * FROM userlogin WHERE session='" . session_id() . "'";
    $result=mysql_query($sql);
    $anzahl=mysql_num_rows($result);

    if ($result) {
    echo "Hallo";
    }

    else {
    echo "Du bist nicht angemeldet";
    }



    ?>

    </body>
    Immer diesen Fehlertext:
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Dokumente und Einstellungen\sascha\Eigene Dateien\xampp\htdocs\svuserarea.php on line 21


    Dabei sehe ich keinen Fehler!
    Bitte helft mir!

    Liebe Grüße
    Heizkessel


  • #2
    Keinerlei Fehlerbehandlung im Skript. Das ist schlecht
    PHP-Code:
    $db mysql_connect("localhost","root","");
    if ( !
    $db ) exit(mysql_error());
    if ( !
    mysql_select_db("userlogin"$db) ) exit(mysql_error());

    $sql="SELECT * FROM userlogin WHERE session='" session_id() . "'";
    $result=mysql_query($sql$db);
    if ( ! 
    $result ) exit(htmlentities($sql)."<br />".mysql_error()); 

    Kommentar


    • #3
      Ja du hast Recht!
      ich hab Fehlerbehandlungen immer ignoriert, aber ab diesem Skript nehme ich sie immer dazu, da ein einfaches

      mysql_select_db("userlogin") or die("DB Select Error.");
      Den ganzen Spuk von vornerein erspart hätte!
      Ich hab einfach die falsche DB angegeben -.-

      Naja, danke trotzdem!

      Liebe Grüße
      Heizkessel

      Kommentar


      • #4
        Wenn Du die freie Wahl hast, vergiss den ganzen mysql_ mysqli_ Kram und nutze pdo. Wenn Du den entsprechenden error mode setzt, werden exceptions geworfen und Du kannst nicht einfach so die Fehlerbehandlung ignorieren/vergessen. PHP: PDO Functions - Manual

        Kommentar


        • #5
          ich bin der meinung das Session-IDs mit jedem Login neu generiert werden.
          Dadurch wäre es unmöglich eine Session in die DB einzutragen da diese mit einer Wahrscheinlich von 99.999999999999999% nicht wieder in diesem zusammenhang auftritt...
          Arbeite lieber mit IDs die du in der DB automatisch inkrementierst und arbeitest halt mit denen....
          Dein Fehler tritt übrigens immer dann auf wenn die Abfrage kein Ergebnis liefert....
          um das anzeigen solltest du ein @ vor den Befehl setzen...so werden dir die Fehler nicht mehr ausgegeben...
          MFG
          CHAOS.A.D

          Kommentar


          • #6
            Aber es ist doch offenkundig Zweck der Aktion, die Daten zu einer bestimmten Session zu laden. Also ist die session_id schon der richtige Schlüssel.

            Zitat von CHAOS.A.D Beitrag anzeigen
            Dein Fehler tritt übrigens immer dann auf wenn die Abfrage kein Ergebnis liefert....
            Falsch. Nur wenn die Abfrage fehlgeschlagen ist, also bei einem SQL Syntaxfehler oder fehlender Berechtigung o.ä.

            Kommentar


            • #7
              Meines Wissens wird der ID-Schlüssel einer Session immer wieder neu generiert... das heißt du kannst Daten dieser Session nur dann auslesen solange diese aktiv ist.. und wenn du dann auch nich mit session_regenerate_id() arbeitest kannst du nur mit der ID aus der Datenbank arbeiten...

              mfg
              CHAOS.A.D

              Kommentar


              • #8
                Ja und? Das ist offensichtlich genau der Zweck: die Daten einer aktiven Session anhand der session id auslesen.

                Kommentar

                Lädt...
                X