I have a table with a text column called myTextColumn. I would like to do something in the PHP application only if an UPDATE changed the value. I am not using triggers. Is there a better way to do so other than the following? Thank you

我有一个表格,其中包含一个名为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');
}

1 个解决方案

#1


3

You can check the rowCount after your PDO call. It'll tell you the number of rows affected by your UPDATE.

您可以在PDO呼叫后检查rowCount。它会告诉你UPDATE影响的行数。

$sql='UPDATE myTable SET myTextColumn=? WHERE id=?';
$stmt=db::db()->prepare($sql);
$stmt->execute($data);
if ( $stmt->rowCount() > 0 )
{ /* do stuff */ }

更多相关文章

  1. 保存在Java桌面应用程序应用程序和网站上使用的个人用户设置的最
  2. MYSQL如何导出存储过程和触发器?
  3. 有没有办法确定是由Web应用程序(php进程)执行数据库行更新,还是通过
  4. mysql 触发器 自动补全字段
  5. 如何在产品和类别应用程序树中将1个表连接到(2个不同的表作为一个
  6. 在我的sql中调用触发器中的函数
  7. 求问vs窗体应用程序用gridview连接mysql未能获取数据库对象的列
  8. MYSQL在触发器中怎样实现‘根据条件来确定是否插入一条记录’?急!
  9. Android应用程序与外部数据库之间的安全性

随机推荐

  1. PHP session如何实现购物车功能
  2. PHP如何操作json?方法介绍
  3. 实现详解Ajax+php数据交互并且局部刷新页
  4. 实现简单的php购物车代码
  5. 十分钟带你了解PHP实现爬虫的过程
  6. PHP与Web页面交互操作实例解析
  7. php ip2long为什么会出现负数?怎么解决?
  8. 手把手教你用php实现图片上传功能
  9. 绝对值得推荐的10本PHP书籍!
  10. 2021年,为什么你该学PHP?!!