[PHP] mysqli_num_rows() Fehler

Dieses Thema im Forum "Webentwicklung" wurde erstellt von EnjoX, 14. März 2009 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 14. März 2009
    mysqli_num_rows() Fehler

    Hallo

    Ich habe folgendes Problem:
    Ich Programmiere derzeit ein Loginscript, das mir aber immer den selben Fehler ausgibt und zwar:


    Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in D:\xampp\htdocs\login.php on line 30

    der Code ist:
    PHP:
        
        $query 
    "SELECT * FROM user WHERE username LIKE ? AND pw=?" ;

        
    $komand  mysqli_prepare ( $db $query );
        
        
    mysqli_stmt_bind_param ( $komand 'ss' $user $pw );
        
        
    $ergebnis  mysqli_stmt_execute ( $komand );
        
        
        
        if(
    mysqli_num_rows ( $ergebnis ) >  0 ){
            
            echo 
    "es hat geklapt" ;
        }
        else{
            echo 
    "user nicht gefunden" ;
        }

    Line 30 ist
    PHP:
    if( mysqli_num_rows ( $ergebnis ) >  0 ){ 
    Ich sehe das prob. einfach nicht, ich habe schon gegoogelt hat zwar ein Ergebnis geliefert aber hat mir nicht wirklich geholfen.

    Achja und wenn ich schon dran bin:
    Für was ist eig. die Weiterleitung nach dem Login hier im board guat ?

    Hoffe jemand kann mir helfen.
     
  2. 14. März 2009
    AW: mysqli_num_rows() Fehler

    brauchst du zwingend mysqli?
    ansonsten schreib es einfach mit dem alten bewährten mysql.
     
  3. 14. März 2009
    AW: mysqli_num_rows() Fehler

    es ist egal ob ich mysqli_num_rows oder mysql_num_rows kommt die selbe fehlermeldung.
     
  4. 14. März 2009
    AW: mysqli_num_rows() Fehler

    und was ist wenn du mysqli_affected_rows(); verwendest hat den für deinen nutzen den selben
    Effekt.
     
  5. 14. März 2009
    AW: mysqli_num_rows() Fehler

    nein funktioniert auch nicht...
    es muss irgendwas damit zu tun haben das ein boolean zurückgegeben wird und kein array (so habe ich das interpretiert)
     
  6. 14. März 2009
    AW: mysqli_num_rows() Fehler

    Irgendwie find ich dein Script komplett , weil ich nie mit mysqli arbeite.

    PHP:
    <? php
    if( $_POST [ 'submit' ])
    {
    //Eingaben escapen um Injections vorzubeugen
    $_POST [ 'Nickname' ] =  mysql_real_escape_string ( $_POST [ 'Nickname' ]);
    $_POST [ 'Passwort' ] =  mysql_real_escape_string ( $_POST [ 'Passwort' ]);
    //-----

    //Password md5 crypten damits in der DB abgeglichen werden kann
    $_POST [ 'Passwort' ] =  md5 ( $_POST [ 'Passwort' ]);
    //----


    $sql  'SELECT * FROM benutzer WHERE Nick = "' . $_POST [ 'Nickname' ]. '" AND Pass = "' . $_POST [ 'Passwort' ]. '"' ;
    mysql_query ( $sql );
    if(
    mysql_affected_rows () ==  '1' ){
    echo 
    'Erfolgreich eingeloggt!' ;
    }else{
    echo 
    'Fehler bei der Benutzeridentifikation' ;
    }
    }
    ?>
    <form name="login" method="post" action="login.php">
    <input type="text" name="Nickname" value="Benutzer" style="height:20px; width:62px;">
    <input type="password" name="Passwort" value="passwort" style="height:20px; width:62px;">
    <input type="submit" name="submit" value="einloggen">
    Schau mal hab ich grad irgendwo rausgekramt, pass die Werte an deine an und schon haste ein funktionierendes.
     
  7. 14. März 2009
    AW: mysqli_num_rows() Fehler

    Erst benutzt du stmt Funktionen, wieso dann nicht auch das num_rows?

    PHP:
    if( mysqli_stmt_num_rows ( $ergebnis ) >  0 ){
    Wow, sehr schlau gesagt ... Argumentation war noch nie deine Stärke, oder?
     
  8. 14. März 2009
    AW: mysqli_num_rows() Fehler

    ja ich kenne die mysql_real_escape_string() funktion, doch ich möchte es so wie oben realisieren, ist eher zu weiterbildungszwecken.

    Die von mir verwendete Methode ist auch Resourcen sparender, was wahrscheinlich nicht wirklich bekerkbar ist.

    Doch ich möchte es so realisieren und ich weiß das es möglich ist.

    EDIT: habe ca. gleichzeitig mit p0w3rn4t0r geschrieben, funktioniert auch nicht, wie gesagt ich denke es ist ein boolean - array prob. und kein funktionsproblem aber könnte mich auch irren.
     
  9. 14. März 2009
    AW: mysqli_num_rows() Fehler

    Habe noch nicht so viel mit mysqli gearbeitet, aber die Zeilen bis auf das num_rows scheinen zu stimmen (sonst gäbe es ja auch dort Fehlermeldungen =D).

    Schau dir mal die Seite von php.net über mysqli_stmt_execute an, Beispiel #2 müsste sein, was du brauchst - wenn ich es richtig verstanden habe.
     
  10. 14. März 2009
    AW: mysqli_num_rows() Fehler

    Danke für den link, aber es kommt immer noch die selbe Fehlermeldung. BW's sind raus würde mich über weitere Beträge freuen.
     
  11. 14. März 2009
    AW: mysqli_num_rows() Fehler

    Hast du das Script jetzt etwas umgebaut? Zeig' mal den aktuellen Stand
     
  12. 14. März 2009
    AW: mysqli_num_rows() Fehler

    Ich kann es nicht umbauen den jemehr befehle ich hinzugebe, destomehr Fehler kriege ich.

    In dem Manual von mysqli_stmt_execute() steht auch:
    Code:
    Rückgabewerte
    
    Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE 
    Das heißt es ist eig. nicht möglich es zu zählen.
    Das Problem ist das es immer TRUE zurückgibt, es wird nicht auf das erfolgreiche Ausführen des Querys geachtet sondern auf etwas anderes glaube ob das binden funktioniert hat.
     
  13. 14. März 2009
    AW: mysqli_num_rows() Fehler

    PHP:
    if ( mysqli_stmt_execute ( $komand )) { ... } else { print  "error!" ; }
    geht auch nicht?
     
  14. 14. März 2009
    AW: mysqli_num_rows() Fehler

    Nein leider auch nicht den er gibt immer TRUE zurück, egal ob der User und das PW übereinstimmen. Er gibt sogar TRUE zurück wenn der User und das PW gar nicht existieren.
     
  15. 14. März 2009
    AW: mysqli_num_rows() Fehler

    Und schonmal anstelle des "LIKE" mit einem "=" probiert?

    Habe ja vorhin einen Link zu php.net gepostet, da wird execute allerdings nur mit INSERT benutzt, die Abfrage wird auch dort sehr einfach gemacht - auf dich angepasst sähe das so aus:
    PHP:
    $query  "SELECT * FROM user WHERE username=' $user ' AND pw=' $pw '" ;
    if (
    $result  mysqli_query ( $link $query )) {
        if (
    $result -> num_rows == 1 ) { }
        
    mysqli_free_result ( $result );
    }
     
  16. 14. März 2009
    AW: mysqli_num_rows() Fehler

    PHP: mysqli_stmt::$num_rows - Manual
    hf
    solltest dir schon das durchlesen was das steht @ php.net zu _execute etc.. dann wärs gar nicht erst zu deinem fehler gekommen.
     
  17. 15. März 2009
    AW: mysqli_num_rows() Fehler

    jetzt hat es funktionier es fehlte mir

    PHP:
     mysqli_stmt_store_result ( $stmt ); 
    thx an alle BWs sind raus.
     
  18. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.