好的,所以我正试图深入了解 PDO。到目前为止,我喜欢它!:) 但我只是遇到了一些事情,我不太明白。
所以考虑下面的代码。将跟踪回声放在代码中,在 catch 内没有回声。所以那里没有错误(或者我认为)。如果我在执行()之后立即回显 $success,它会给我 TRUE。所以现在,尝试在 $success 的条件下进行跟踪,尝试打印 $userData 或直接 $userID 什么都不返回。但是放一个 hello world 的回声会打印出这个东西。
我下一步要调试什么?我假设如果我的 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
}