Tôi không bao giờ sử dụng phương thức fetchObject nhưng làm thế nào về điều này:
$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());
}
Tôi cũng nhận thấy các dấu ngoặc kép xung quanh dấu chấm hỏi của bạn ('?'), Chúng không nên ở đó.
Để sử dụng nội dung thử / bắt, bạn sẽ cần bao gồm điều này khi tạo kết nối PDO của mình:
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Và bạn cũng có thể muốn thêm điều này:
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE); // Try to use the driver's native prepared statements.