J'essaie de me familiariser avec PDO. Pour l'instant, j'adore ! :) Mais je viens de rencontrer quelque chose que je n'arrive pas à comprendre.
Considérons donc le code ci-dessous. La mise en place d'échos de traçage dans le code, à l'intérieur du catch n'échappe rien. Il n'y a donc pas d'erreur à ce niveau (c'est du moins ce que je pense). Si j'affiche $success juste après execute(), je reçois TRUE. Donc maintenant, en essayant de tracer dans la condition de $success, en essayant d'imprimer $userData ou directement $userID, je n'obtiens rien. Mais en mettant un écho de hello world, cela s'affichera.
Quelle serait la prochaine étape de débogage ? Je suppose que s'il y avait un problème avec ma déclaration SQL, il serait détecté et montré aussi, donc, je suis perdu !
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
}