さて、私は頭をPDOに取り込もうとしています。これまでのところ、私はそれが大好きです!:)しかし、私は何かに遭遇したばかりで、それを完全に理解することはできません.
したがって、以下のコードを検討してください。トレース エコーをコード内に配置すると、キャッチ エコー内に何も表示されません。したがって、そこにはエラーはありません(またはそう思います)。execute() の直後に $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
}