php - 确定 SQL UPDATE 是否更改了列的值

标签 php mysql sql pdo

我有一个包含名为 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/

相关文章:

php - 如何从字符串中删除段落标记?

mysql - 事件记录(mysql db)文本字段中的字符数是否有限制

sql - 编辑前 200 行中缺少记录,但可以在选择前 1000 行中查看 SQL Server 2008 R2

mysql - 涉及聚合函数的 SQL 查询

php - 组合框上的空值 - codeigniter

php - 使用 MySQL 检查空字段

mysql - JOIN ON 语句 MySQL 中的未知列

php - 在 Laravel 应用之外访问 .env 变量

php - 根据过滤器细化搜索结果

php - 从 PHP 数组创建 json_encode 字符串