PHP PDO我可以';t使用新添加的凭据登录
在尝试学习如何在php中使用类/函数时,我得到了很多帮助,在此之后,我在学习过程中遇到了另一个难题:-) 我可以注册用户,但每次我尝试使用这些新创建的凭据登录时,“无效凭据” 在回显一些结果后,我发现它总是返回0条记录,我知道我的db连接正在工作,因为我使用相同的连接进行注册 如有任何帮助,我们将一如既往地不胜感激 她的是我的连接和登录功能的代码示例PHP PDO我可以';t使用新添加的凭据登录,php,pdo,Php,Pdo,在尝试学习如何在php中使用类/函数时,我得到了很多帮助,在此之后,我在学习过程中遇到了另一个难题:-) 我可以注册用户,但每次我尝试使用这些新创建的凭据登录时,“无效凭据” 在回显一些结果后,我发现它总是返回0条记录,我知道我的db连接正在工作,因为我使用相同的连接进行注册 如有任何帮助,我们将一如既往地不胜感激 她的是我的连接和登录功能的代码示例 <?php class UsersLib { private $con; public function _
<?php
class UsersLib
{
private $con;
public function __construct() {
$this->con = new PDO("sqlsrv:Server=$SQLServer;Database=$SQLDB", $SQLUser, $SQLPass);
}
public function Login($username, $password)
{
try {
$query = $this->con->prepare("SELECT user_id FROM users WHERE (username=:username OR email=:username) AND password=:password");
$query->bindParam("username", $username, PDO::PARAM_STR);
$enc_password = hash('sha256', $password);
$query->bindParam("password", $enc_password, PDO::PARAM_STR);
$query->execute();
$Str = "Rows " .$query->rowCount(). " User Name $username.";
echo '<div style="color:#FF0000;text-align:center;font-size:50px;">' .$Str. '</div>'; //Result of the row count and Post username
if ($query->rowCount() > 0) {
$result = $query->fetch(PDO::FETCH_OBJ);
return $result->user_id;
} else {
return false;
}
} catch (PDOException $e) {
exit($e->getMessage());
}
}
}
?>
连接字符串中的双引号位置错误 您的SQL Server PDO连接字符串应如下所示:
newpdo(“sqlsrv:Server=localhost;Database=DB”、“User”、“Password”)代码>
问题中的引号不正确。如果这与实际代码中的相同,则会出现致命错误。请调整。除非启用仿真,否则不能使用相同的命名占位符。$this->con=new PDO(“sqlsrv:Server=LocalHost;Database=DB,“User”、“PassWord”);
检查连接是否工作总是一个好主意!@RiggsFolly抱歉,它们通常是变量,这是一个post输入错误,正如我所解释的,我可以使用相同的PDO连接注册用户,只有当我尝试读取它们时,它才会读取任何记录。这是我的正常字符串…$this->con=new PDO(“sqlsrv:Server=$SQLServer;Database=$SQLDB“,$SQLUser,$SQLPass);抱歉,它们通常是变量,这是一个post输入错误,正如我所解释的,我可以使用相同的PDO连接注册用户,只有当我尝试将它们读回时,它才会读取任何记录。这是我的正常字符串。。。$this->con=new-PDO(“sqlsrv:Server=$SQLServer;Database=$SQLDB”、$SQLUser、$SQLPass);@Mark那么为什么这不是我们所有人(仍然)的代码呢你的问题中没有显示看到?对不起,我同时打开了很多文本并复制了错误的文本,抱歉!;-)哦,我编辑了,现在它看起来应该是lol,我在想为什么代码都是红色的,呵呵…如果我知道如何回应$query的结果有什么建议吗?我可以看到你做了很多rowCount$Str,值是多少?回显$result,并检查其值,然后回显异常以查看可能的错误。这些可能指向要检查答案的区域。