I have a PHP script with two deliberate typo mistakes in the statement for an SQL query:
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());
}
However, the script does not catch the error even after setting attribute to PDO::ERRMODE_EXCEPTION
. What am I missing here?
UPDATE:
This is the full script. The second typo blindValue
has been reverted back. The error remains uncaught:
<?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();
?>