PHP PDO我可以';t使用新添加的凭据登录

PHP PDO我可以';t使用新添加的凭据登录,php,pdo,Php,Pdo,在尝试学习如何在php中使用类/函数时,我得到了很多帮助,在此之后,我在学习过程中遇到了另一个难题:-) 我可以注册用户,但每次我尝试使用这些新创建的凭据登录时,“无效凭据” 在回显一些结果后,我发现它总是返回0条记录,我知道我的db连接正在工作,因为我使用相同的连接进行注册 如有任何帮助,我们将一如既往地不胜感激 她的是我的连接和登录功能的代码示例 <?php class UsersLib { private $con; public function _

在尝试学习如何在php中使用类/函数时,我得到了很多帮助,在此之后,我在学习过程中遇到了另一个难题:-)

我可以注册用户,但每次我尝试使用这些新创建的凭据登录时,“无效凭据”

在回显一些结果后,我发现它总是返回0条记录,我知道我的db连接正在工作,因为我使用相同的连接进行注册

如有任何帮助,我们将一如既往地不胜感激

她的是我的连接和登录功能的代码示例

    <?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,并检查其值,然后回显异常以查看可能的错误。这些可能指向要检查答案的区域。