変更をコミットする直前に、トランザクションでどの値が変更されたかを知る必要があります。元の値を取得することは可能ですか (コミットされていない値ではありませんか?)。例(架空のコード):
try {
$pdo->beginTransaction();
$pdo->exec('UPDATE items SET name = :name, text = :text WHERE id = :id', $newData);
//If the update was fine:
$oldData = $pdo->query('SELECT * FROM items WHERE id = :id LIMIT 1', array(':id' => $newData['id']);
$diff = array_diff_assoc($newData, $oldData);
echo 'Item was update successfully with new values in '.implode(', ', array_keys($diff));
$pdo->commit();
} catch (Exception $E) {
echo 'something is wrown';
$pdo->rollBack();
}
トランザクション内の選択データでは、このデータは元のデータではなく、変更されたデータです。これをスキップするmysqlのオプションはありますか?