MySQLi Error Code 0



  • Ich versuche mich zur Zeit ein wenig mit php und dem Umgang mit prepared statements über Mysqli
    Leider kriege ich, sobald ich die querys aus dem php code ausführe immer einen Fehler.

    Die Errorno ist 0 und es wird keine Error Message gegeben.

    Ich benutze folgenden Code :

    if(!$stmt = $DBConnection->getConnection()->prepare(
                    "SELECT * from users where User=(?) and Pass=(?)")){
                    echo "Error preparing SQL-Statement (".$DBConnection->getConnection()->errno.") ".
                        $DBConnection->getConnection()->error;
                }
                if(!$stmt->bind_param('ss',$_POST['user'],$_POST['pass'])){
                    echo "Error binding Parameters (".$DBConnection->getConnection()->errno.") ".
                        $DBConnection->getConnection()->error;
                }
                if($stmt->execute()){
                    echo "Error executing SQL-Statement (".$DBConnection->getConnection()->errno.") ".
                        $DBConnection->getConnection()->error;
                }
                if($stmt->fetch()){
                    //Login Correct
                    session_start();
                    $_SESSION['name'] = $_POST['user'];
                }
                else{
                    // Login Failed
                    echo "userame or password incorrect !";
                }
    

    Die einzige Rückgabe ist :

    Error executing SQL-Statement (0)

    Interessanterweise wird erkannt ob Username und Passwort richtig waren oder nicht, ich bekomme also entsprechend ein username or password incorrect oder eben nicht.

    Ich hätte jetzt auf ein Verbingungsproblem getippt, komme aber mit tools wie Mysql workbench ohne Probleme auf die DB.

    Wäre super, wenn irgendwer um Rat weiss...


  • Mod

    execute liefert true bei erfolg



  • ahhh , ich glaube ich sehe den Fehler.
    Danke !

    Falls nochmal jemand das selbe Problem hat :

    es muss :

    if([b]![/b]($stmt->execute())){
                    echo "Error executing SQL-Statement (".$DBConnection->getConnection()->errno.") ".
                        $DBConnection->getConnection()->error;
                }
    

    und nicht

    if($stmt->execute()){
                    echo "Error executing SQL-Statement (".$DBConnection->getConnection()->errno.") ".
                        $DBConnection->getConnection()->error;
                }
    

    lauten.

    Danke nochmal für die fixe Hilfe, ich habs einfach nich gesehn.


Anmelden zum Antworten