Почему не обнаружена ошибка исключения PDO?

У меня есть сценарий PHP с двумя преднамеренными опечатками в инструкции для запроса SQL:

try
{
 $stmt = $dbh->prepare("SELECT COUNT(*) FROM Product WHERE non-existent_column=?");
 $stmt->blindValue(1, $id, PDO::PARAM_INT);
 $stmt->execute();
 $row = $stmt->fetchColumn();
}
catch(PDOException $err)
{
 var_dump($err->getMessage());
 var_dump($dbh->errorInfo());
}

Однако сценарий не обнаруживает ошибку даже после установки атрибута на PDO: : ERRMODE_EXCEPTION . Что мне здесь не хватает?

ОБНОВЛЕНИЕ:

Это полный сценарий. Вторая опечатка blindValue была возвращена обратно. Ошибка остается невыявленной:

<?php

$user= "user";
$password = "password";
$dsn = "mysql:dbname=Catalogue;host=localhost";
$dbh = new PDO($dsn, $user, $password);
$dbh->setAttribute(PDO::ERRMODE_EXCEPTION); 
$id = 1000;

try
{
 $stmt = $dbh->prepare("SELECT COUNT(*) FROM Product WHERE non-existent_column=?");
 $stmt->bindValue(1, $id, PDO::PARAM_INT);
 $stmt->execute();
 $row = $stmt->fetchColumn();
}
catch(PDOException $err)
{
 echo "caught";
 var_dump($err->getMessage());
 var_dump($dbh->errorInfo());
 exit();
}

var_dump($stmt);
var_dump($row);
echo "uncaught";
exit();

?>
7
задан Charles 16 February 2014 в 05:29
поделиться