Pourquoi PDO rowCount () renvoie 0 après UPDATE une table sans modifier les données existantes?

Je suis de la lecture d'un tutoriel sur la façon d'insérer et mettre à jour des données dans une table MySQL à l'aide de PHP, le code est donné ci-dessous. Mon problème est que lorsque je clique sur mise à jour mais je n'ai pas modifié les données, rowCount() retourne 0 et rompt le code.

Ma question est, Si je suis tout simplement la mise à jour de la base de données avec les mêmes valeurs qui sont à la base de données, pourquoi ne rowCount() renvoie zéro? Mes pensées étaient que même si c'était les mêmes données, il serait inséré de toute façon et retourner un nombre de lignes mises à jour? Je suppose que c'vérifier les données avant d'essayer de le mettre à jour? Quelqu'un peut-il éclairer sur ce pour moi et de proposer une solution de contournement? J'ai été en vedette sur le code pour les heures et ont été incapables de trouver quoi que ce soit, merci.

<?php
require_once('../includes/connection.inc.php');
//initialize flags
$OK = false;
$done = false;
//create database connection
$conn = dbConnect('write', 'pdo');
if (isset($_GET['article_id']) && !$_POST) {
//prepare sql query
$sql = 'SELECT article_id, title, article FROM blog WHERE article_id = ?';
$stmt = $conn->prepare($sql);
//bind the results
$stmt->bindColumn(1, $article_id);
$stmt->bindColumn(2, $title);
$stmt->bindColumn(3, $article);
//execute query by passing array of variables
$OK = $stmt->execute(array($_GET['article_id']));
$stmt->fetch();
}
//if form has been submitted, update record
if (isset($_POST['update'])) {
//prepare update query
$sql = 'UPDATE blog SET title = ?, article = ? WHERE article_id = ?';
$stmt = $conn->prepare($sql);
//execute query by passing array of variables
$stmt->execute(array($_POST['title'], $_POST['article'], $_POST['article_id']));
$done = $stmt->rowCount();
}
//redirect page on sucess or if $_GET['article_id'] not defined
if ($done || !isset($_GET['article_id'])) {
header('Location: http://localhost/PHP_Solutions/admin/blog_list_pdo.php');
exit();
}
//store error message if query fails
if (isset($stmt) && !$OK && !$done) {
$error = $stmt->errorInfo();
if (isset($error[2])) {
$error = $error[2];
}
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Update Blog Entry</title>
<link href="../styles/admin.css" rel="stylesheet" type="text/css">
</head>
<body>
<h1>Update Blog Entry</h1>
<p><a href="blog_list_pdo.php">List all entries </a></p>
<?php if (isset($error[2])) {
echo "<p class='warning'>Error: $error[2]</p>";
echo '<pre>';
print_r($_POST);
print_r($error);
echo '</pre>';
}
if ($article_id == 0) { ?>
<p class="warning">Invalid request: record does not exist.</p>
<?php } else { ?>
<form id="form1" method="post" action="">
<input name="article_id" type="hidden" value="<?php echo $article_id; ?>">
<p>
<label for="title">Title:</label>
<input name="title" type="text" class="widebox" id="title" value="<?php echo htmlentities($title, ENT_COMPAT, 'utf-8'); ?>">
</p>
<p>
<label for="article">Article:</label>
<textarea name="article" cols="60" rows="8" class="widebox" id="article"><?php echo htmlentities($article, ENT_COMPAT, 'utf-8'); ?></textarea>
</p>
<p>
<input type="submit" name="update" value="Update Entry" id="update">
</p>
</form>
<?php } ?>
</body>
</html>

source d'informationauteur Drewdin