0

このストアド プロシージャが正しいかどうか疑問に思っています。このプロシージャを php で呼び出そうとしています。これにより、2 つのバインドされた varchar パラメータがストアド プロシージャに渡されます。ただし、エラーが発生します:

無効なパラメータ番号 :: 名前

ここで、'name' は私が使用しているパラメーターの 1 つです。

私のコードの問題は何ですか?

CREATE OR REPLACE FUNCTION treasurehunt.huntlogin(character varying, character varying)
 RETURNS bigint AS
$BODY$SELECT COUNT(*) FROM TreasureHunt.Player 
WHERE name=$1 AND password=$2$BODY$
LANGUAGE sql VOLATILE
COST 100;
ALTER FUNCTION treasurehunt.huntlogin(character varying, character varying)
OWNER TO abro9592;

ここにphpがあります

function checkLogin($name,$pass) {
// STUDENT TODO:
// Replace line below with code to validate details from the database
  $db = connect();
try {
    $stmt = $db->prepare('SELECT COUNT(*) FROM treasurehunt.huntlogin (:user,:pass)');
    $stmt->bindValue(':name', $name, PDO::PARAM_STR);
    $stmt->bindValue(':pass', $pass, PDO::PARAM_STR);
    $stmt->execute();
    $result = $stmt->fetchColumn();
    $stmt->closeCursor();
} catch (PDOException $e) { 
    print "Error checking login: " . $e->getMessage(); 
    return FALSE;
}
return ($result==1);

}
4

0 に答える 0