Reputation: 6117
This code works fine, but I'll want to handle exception
if any thing goes wrong, so I deliberately made a syntax error in the query
but nothing happens. Below is the code
try {
$sql = "INSERT INTO journals (topic, author, ) VALUES ('$topic', '$authors', ')";
echo "1st";
$lecturers_db->query($sql);
echo "second";
} catch(PDOException $e) {
echo $e->getMessage();
echo $msg = "Error!";
}
Without the obvious syntax error, the code works fine but with the syntax error, nothing happens, all the code in the try block
executes and the code in the catch block
never executes.
I want to raise an exception
, please how do I do it here, thanks for any help.
Upvotes: 6
Views: 9121
Reputation: 7180
Be sure to set the attribute PDO::ATTR_ERRMODE to PDO::ERRMODE_EXCEPTION, as soon as you init your pdo object:
$lecturers_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
After that, any failed queries will raise an exception
Upvotes: 9
Reputation: 24661
Exceptions are thrown. Syntax errors in code != Exceptions.
<?php
try {
$code = 12;
throw new PDOException('Message', $code );
} catch (PDOException $e) {
}
?>
However, from the maual:
You should not throw a PDOException from your own code. See Exceptions for more information about Exceptions in PHP.
My advice is to throw either a general exception, or to write your own custom exception to handle your error.
Upvotes: 7