我有一个包含名为 myTextColumn 的文本列的表。仅当 UPDATE 更改了值时,我才想在 PHP 应用程序中执行某些操作。我没有使用触发器。除了以下方法之外,还有更好的方法吗?谢谢
function updateTable($data)
{
$sql='SELECT id FROM myTable WHERE id=:id AND myTextColumn!=:myTextColumn';
$stmt=db::db()->prepare($sql);
$stmt->execute($data);
if($stmt->fetchColumn()) {
$sql='UPDATE myTable SET myTextColumn=? WHERE id=?';
$stmt=db::db()->prepare($sql);
$stmt->execute($data);
return true;
}
else {return false;}
}
if(updateTable(array('id'=>123, 'myTextColumn'=>'Some text goes here')))
{
echo('It Changed');
}
最佳答案
您可以查看 rowCount在你的 PDO 电话之后。它会告诉您受更新影响的行数。
$sql='UPDATE myTable SET myTextColumn=? WHERE id=?';
$stmt=db::db()->prepare($sql);
$stmt->execute($data);
if ( $stmt->rowCount() > 0 )
{ /* do stuff */ }
关于php - 确定 SQL UPDATE 是否更改了列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20124138/