我在使用 PDO bindValue() 函数时遇到了一些问题。每当我似乎使用它时,我的查询总是返回 0 个结果。但是,如果我不使用 bindValue() 将 $user 和 $pass 直接放入 sql 中,它就可以正常工作
$user 是一个字符串
$password 是一个 sha1() 哈希
public function login($user, $pass) {
global $CMS;
$sql = "SELECT `username,`password` FROM `" . TB_PREFIX . "users` WHERE `username` = ':user' AND `password` = ':pass'";
$query = $CMS->prepare_query($sql);
$query->bindValue(':user', $user, PDO::PARAM_STR);
$query->bindValue(':pass', $pass, PDO::PARAM_STR);
$query->execute();
# User successfully authenticated
if ($query->rowCount() == 1) {
# Get all data from DB and populate class variables
self::populate_user_data($user);
session_register($user . "-" . base64_encode($_SERVER['REMOTE_ADDR']));
return true;
}
# User failed authentication
return false;
}