好的,所以我试图让我的头脑进入PDO。到目前为止,我喜欢它!:)但是我只是遇到了一些事情,我不太明白。
因此,请考虑下面的代码。将跟踪回声放在代码中,在捕获中没有任何回声。所以那里没有错误(或者我认为是这样)。如果我在 execute() 之后立即回显$success,它会给我 TRUE。所以现在,试图在$success的条件下进行跟踪,试图打印$userData或直接打印$userID什么也没返回。但是放一个你好世界的回声会打印出来的东西。
我的下一步调试是什么?我假设如果我的 SQL 语句有任何问题,那也会被捕获并显示,所以我迷路了!
try
{
$dbh = DatabaseHelpers::getDatabaseConnection();
$stmt = $dbh->prepare('SELECT UserId FROM Users WHERE '
. 'Username=:Username '
. 'AND Password=:hashedPassword '
. 'LIMIT 1');
$hashedPassword = DatabaseHelpers::passHash ($password);
$stmt->bindParam(':Username', $Usernname, PDO::PARAM_STR);
$stmt->bindParam(':hashedPassword', $hashedPassword, PDO::PARAM_STR);
$success = $stmt->execute();
if ($success)
{
$userData = $stmt->fetch();
$userID = $userData['UserId'];
}
$dbh = null;
}
catch (PDOException $e)
{
$e
}
我猜你这里有一个错字:$Usernname
应该是$Username
.
在这一行中:
$stmt->bindParam(':Username', $Usernname, PDO::PARAM_STR);
这可能就是为什么它不返回任何内容的原因 - 您查找的用户名基本上是一个空字符串。