Php fetchColumn()不工作
我是一个完全的php初学者,所以我想问题很明显,但到目前为止,我在任何地方都找不到我的解决方案。我正在制作一个连接到MySQL数据库的登录框。当我尝试将ID分配给所选列中的ID时,不会分配任何内容。为什么Php fetchColumn()不工作,php,login,pdo,Php,Login,Pdo,我是一个完全的php初学者,所以我想问题很明显,但到目前为止,我在任何地方都找不到我的解决方案。我正在制作一个连接到MySQL数据库的登录框。当我尝试将ID分配给所选列中的ID时,不会分配任何内容。为什么 $dbh = new PDO("mysql:host=$mysql_hostname;dbname=$mysql_dbname", $mysql_username, $mysql_password); /*** $message = a message saying we have c
$dbh = new PDO("mysql:host=$mysql_hostname;dbname=$mysql_dbname", $mysql_username, $mysql_password);
/*** $message = a message saying we have connected ***/
/*** set the error mode to excptions ***/
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
/*** prepare the select statement ***/
$stmt = $dbh->prepare("SELECT email, password, ID FROM sta402_users
WHERE email = :email AND password = :password");
/*** bind the parameters ***/
$stmt->bindParam(':email', $email, PDO::PARAM_STR);
$stmt->bindParam(':password', $password, PDO::PARAM_STR, 40);
/*** execute the prepared statement ***/
$stmt->execute();
/*** check for a result ***/
$ID = $stmt->fetchColumn(2);
/*** if we have no result then fail boat ***/
if($ID == false)
{
$message = 'Login Failed';
}
我一直看到登录失败的消息 我不知道该在哪里检查额外的空白。如果我回显$email和$password,它们都打印得很好。您是否对密码进行哈希运算,结果/原始值是否超过40个字符?你为什么要限制它呢?你能直接在mysql中运行这个查询吗(给它实际的用户和密码,例如:WHERE email=)foo@bar.com'and password='s3cr3t'…)我之所以问这个问题,是因为密码很可能是经过哈希处理的。也许是使用mysql
PASSWORD()
或md5,但我们无法知道,基于这一点,我只是取消了限制,因为它是加密的,但ID仍然没有得到任何值..那么只做呢。。。其中email=:email
是否会产生结果?