I have run into a problem using pdo because an error was not caught.
The code is simple and works just fine, I´ll just include a sample to avoid confusion:
$sql = 'INSERT INTO somedatetable (something) VALUES (:something) ON DUPLICATE KEY UPDATE something=:something'
try {
$stmt = $dbh->prepare($sql);
$values = array(":something" => $something);
$stmt->execute($values);
} catch (PDOException $e) {
echo "Error!: " . $e->getMessage() . "<br/>";
}
The code works fine, however when working on a new module, I ran into a problem that no records were added or modified and no error was caught.
$stmt returned false but I did not have a clue why or how to find the error.
The solution was simple in the end, I was using a limited MySQL user that did not have write permissions to the table. These errors always displayed right away when using mysql, but using PDO I do not know how to get to them.
How do I get PHP / PDO to display or catch these kind of database errors?