php - PDO 成功,但什么都不返回?

标签 php pdo

这个问题不太可能对任何 future 的访客有帮助;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于互联网的全局受众。如需帮助使这个问题更广泛适用,visit the help center .




8年前关闭。




好的,所以我正在努力进入 PDO。到目前为止,我喜欢它! :) 但是我刚刚遇到了一些事情,我不太明白。

所以考虑下面的代码。将跟踪 echo 放在代码中,在 catch 内没有 echo 。所以那里没有错误(或者我认为)。如果我在 execute() 之后立即回显 $success,它会给我 TRUE。所以现在,尝试在 $success 的条件下进行跟踪,尝试打印 $userData 或直接 $userID 不返回任何内容。但是输入 hello world 的 echo 会打印出来。

我的下一步调试是什么?我假设如果我的 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);

这可能就是它什么都不返回的原因——您查找的用户名基本上是一个空字符串。

关于php - PDO 成功,但什么都不返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13531588/

相关文章:

javascript - 密码登录页面

php - 仅从错误代码获取 MySQL 错误消息

php - 使用 php、pdo 和 mysql 显示当前登录用户的简单计数器

php - 将连接文件包含到类 "Undefined variable conn"

php - PDO 中的多个创建触发器查询

php - 检查字符串是否包含 youtube URL

php - 使用 Polylang 插件在 WordPress 网站上切换不同语言的页脚

php - 在 Laravel 中对多个字段求和

php - PDO 未从超过 1 列的 SELECT 返回结果

php - PDO 返回错误 "could not find driver",具有已知的工作 DSN