I'm tweaking a legacy database class written for PHP/5.2 that was designed to connect to MySQL and hide all errors. I've configured the PDO instance to throw exceptions:
new PDO($dsn, $user, $pass, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION))
Now I need to adjust my code accordingly to handle the case where functions can throw an exception where they wouldn't before so I head to the manual.
In some cases the manual is explicit, e.g. PDO::prepare
:
If the database server successfully prepares the statement,
PDO::prepare()
returns aPDOStatement
object. If the database server cannot successfully prepare the statement,PDO::prepare()
returnsFALSE
or emitsPDOException
(depending on error handling).
In other cases it's kind of vague, e.g. PDO::commit
:
Returns
TRUE
on success orFALSE
on failure.
Throws aPDOException
if there is no active transaction.
(Can it fail for some other reason and simply return false
?)
And there're cases when exceptions are not even mentioned, e.g. PDO::bindValue
:
Returns
TRUE
on success orFALSE
on failure.
... even though it's clear to verify that it does throw PDOException
on error (at least, on certain errors).
Do I still need to check the return value of methods that return false
on error when the manual doesn't say otherwise?