PDO成功,但未返回任何内容



好的,所以我试图让我的头脑进入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);

这可能就是为什么它不返回任何内容的原因 - 您查找的用户名基本上是一个空字符串。

最新更新