Ich verwende nie die fetchObject-Methode, aber wie wäre es damit:
$stmt = $pdo->prepare("SELECT * FROM Users WHERE username=?");
$stmt->bindValue(1, $username);
try{
$stmt->execute();
while ($row = $stmt->fetch()){
// Do whatever.
}
}catch(PDOException $e){
echo($e->getMessage());
}
Ich bemerke auch die einfachen Anführungszeichen um Ihr Fragezeichen ('?'), sie sollten nicht dort sein.
Um das Try/Catch-Zeug zu verwenden, müssen Sie Folgendes einschließen, wenn Sie Ihre PDO-Verbindung erstellen:
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Und vielleicht möchten Sie dies auch hinzufügen:
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE); // Try to use the driver's native prepared statements.