gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 05:22:47 33 4
gpt4 key购买 nike

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

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com