Stored Procedure und PHP

  • Stored Procedure und PHP

    Hi,

    ich habe eine Stored Procedure:

    Quellcode

    1. CREATE PROCEDURE logincheck (usern VARCHAR(50), pwd VARCHAR(50), OUT isValid INTEGER)
    2. SQL SECURITY INVOKER
    3. COMMENT 'ueberprueft login'
    4. BEGIN
    5. SELECT COUNT(*) INTO isValid FROM User WHERE username = usern AND password = pwd;
    6. END


    Jetzt will ich mit PHP diese nutzen. Wenn ich den query-String manuell eingebe bekomm ich das richtige Ergebnis. Nur durch
    mysql_query(); bekomm ich kein richtiges Ergebnis

    Query-String: CALL logincheck('kai.hardy', SHA1( 'hallo' ) , @res); SELECT @res;
    Wie bekomm ich hier das richtige Ergebnis geliefert?

    EDIT:
    Mit mysqli_mulit_query gehts auch nicht :(

    Quellcode

    1. public function isUserValid($username,$pwd){
    2. $mysqli = new mysqli($this->host,$this->user,$this->pwd);
    3. if (mysqli_connect_errno()) {
    4. printf("Connect failed: %s\n", mysqli_connect_error());
    5. exit();
    6. }
    7. $query = "CALL logincheck('$username', SHA1('$pwd') , @res);";
    8. $query .= "SELECT @res";
    9. /* execute multi query */
    10. if ($mysqli->multi_query($query)) {
    11. do {
    12. /* store first result set */
    13. if ($result = $mysqli->store_result()) {
    14. while ($row = $result->fetch_row()) {
    15. printf("%s\n", $row[0]);
    16. }
    17. $result->close();
    18. }
    19. } while ($mysqli->next_result());
    20. }
    21. $mysqli->close();
    22. }
    Alles anzeigen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Sw00sh! ()

  • Quellcode

    1. CALL logincheck( 'kai.hardy', SHA1( 'hallo' ) , @res );# MySQL returned an empty result set (i.e. zero rows).
    2. SELECT @res


    Gibt 0 zurück wenn falsch ansonsten > 0

    Wenn ich den obenstehenden Code ausführe in phpmyadmin kommt bei mir 1 raus -> also gehts. Leider schaffe ich es nicht das Ergebnis mit PHP zu bekommen :(