这个问题不太可能对任何 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/