Ankündigung

Einklappen
Keine Ankündigung bisher.

mysqli_num_rows()

Einklappen

Neue Werbung 2019

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

  • mysqli_num_rows()

    Hi,

    Ich habe folgende Fehlermeldung:


    Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in


    PHP-Code:

    $db 
    mysqli_connect("111111""db3gdg""password""db30gdg");

    // Sitzung einfügen
    if(!empty($_POST['login'])) {
        
    // Login wird durchgeführt
        
    $sql "SELECT id
            FROM users
            WHERE username="
    .$db->real_escape_string($_POST['username'])."
            AND password="
    .$db->real_escape_string(md5($_POST['password']));
        
    $res mysqli_query($db$sql);
        
        if(
    mysqli_num_rows($res) > 0
        
    //if($res = mysqli_num_rows() > 0)
        // $num_row = $res->num_rows;
       // if($num_row > 0)
        
    {
            
    // Benutzer wurde gefunden
            
    $row mysqli_fetch_assoc($res);
            
            
    // Sitzung in die Tabelle einfügen
            
    $sql "INSERT INTO sessions (user_id, session_id) VALUES(".$row['id'].", ".$db->real_escape_string($session_id).")";
            
    mysqli_query($db$sql);
        }
    }

    // Sitzung löschen
    if(!empty($_GET['logout'])) {
        
    $sql "DELETE FROM sessions WHERE session_id=".$db->real_escape_string($session_id);
        
    mysqli_query($db,$sql);
    }

    $login_ok false;

    // Login überprüfen
    // Wird auf sessions Tabelle zugegriffen
    // Statusvariable $login_ok wird auf true gesetzt
    $sql "SELECT * FROM sessions WHERE session_id=".$db->real_escape_string($session_id);
    $res mysqli_query($db,$sql);
    if(
    mysqli_num_rows($res) > 0
    //$num_row = $res->num_rows;
    //if($num_row > 0) 

    {
    $login_ok true;


  • #2
    Zitat von bodo Beitrag anzeigen
    Ich habe folgende Fehlermeldung:

    Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in
    Danke für die Information. Und was ist jetzt die Frage?

    Falls du wissen willst wieso mysqli_query fehlschlägt solltest du mysqli_error befragen bzw. mal einen Blick auf das werfen was du mit $sql an die Datenbank übergibst.

    Kommentar


    • #3
      Das Problem liegt in "mysqli_num_rows"

      Kommentar


      • #4
        Zitat von bodo Beitrag anzeigen
        Das Problem liegt in "mysqli_num_rows"
        Nein. Lies doch bitte die Fehlermeldung. Dort steht dass die Funktion nicht das übergeben bekommt was sie erwartet - und woher kommt der Wert der an mysqli_num_rows() übergeben wird? Richtig, von mysqli_query(). Und in welchem Fall liefert mysqli_query() statt eines mysqli_result-Objekts einen boolschen Wert (siehe Fehlermeldung)? Wieder Richtig, im Fehlerfall. Und im Fehlerfall ist mysqli_error() zu befragen - warum machst du das nicht einfach?

        Kommentar


        • #5
          Ich würde auden den SQL-String tippen:
          Code:
           $sql = "SELECT id
                  FROM users
                  WHERE username=".$db->real_escape_string($_POST['username'])."
                  AND password=".$db->real_escape_string(md5($_POST['password']));
          das würde ich so vermuten:

          Code:
           
          $sql = "SELECT id
                  FROM users
                  WHERE username='".$db->real_escape_string($_POST['username'])."'
                  AND password='".$db->real_escape_string(md5($_POST['password']))."'";
          Da String in '' erwartet werden in SQL
          Gruß Skaduro

          Kommentar

          Lädt...
          X