Bạn cần nói với PDO rằng bạn muốn nó đưa ra các ngoại lệ:
$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Theo nhận xét của bạn bên dưới, rõ ràng là DSN của bạn không chính xác. Nó phải là:
$connection = new PDO('mysql:host=localhost;dbname=my_db','my_username','xxxxxxx');
Lưu ý rằng cú pháp là dbname=
thay vì dbname:
(mà bạn đã có ban đầu).