The following updating via PDO may fail without any error message in some cases:
<?php
...
$dbh = new PDO(...);
$dbh -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = "update table_name set introduction = :introduction where name = 'Foo Bar'";
$arr = array(':introduction' => "About Foo Bar");
try {
$stmt = $dbh -> prepare($stmt);
$stmt -> execute($arr);
$count = $stmt -> rowCount();
echo "Affected rows: " . $count;
} catch (PDOException $e) {
echo $e -> getMessage();
die();
}
?>
The output is:
Affected rows: 0
It means no row was updated. I know it might cost you a lot of time to do a thorough check, but found nothing wrong. The fact is that MySQL does not update rows with the same values as the rows have, thus, no row is affected.