php - 具有绑定(bind)参数的 PDO sql 查询 If 更新中的语句

标签 php mysql pdo

我试图创建一个不是 sql 意义上的“触发器”,但我想在状态字段设置为 100 时更新 date_added 字段

$sql='UPDATE table
SET status=:status,
    date_added=[PSEUDO CODE :status=100 ? now() : null;]
WHERE id=:id';

    $stmt=$conn->prepare($sql);
    $stmt->bindParam(':id', $id, PDO::PARAM_STR);
    $stmt->bindParam(':status', $status, PDO::PARAM_STR);
    $stmt->bindParam(':sign_id', $sign_id, PDO::PARAM_STR);
    $stmt->execute();
  1. 在 sql 查询中尝试这样做会更好吗(不确定如何 执行此操作)或在 php 页面上执行(我想我可以无意中通过 那个) 在发出查询之前?
  2. 是否有任何性能提升方式?

在此先感谢您的帮助

最佳答案

date_added = :date

$date = $status == 100 ? date('Y-m-d H:i:s') : null;
$stmt->bindParam(":date", $date);

您也可以在 MySQL 中使用 IF 进行这种比较。我不认为一个比另一个特别快,但对我来说使用 PHP 进行比较更有意义。

关于php - 具有绑定(bind)参数的 PDO sql 查询 If 更新中的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20202175/

相关文章:

mysql - 如何在MYSQL中选择与其他表中的多行交集相匹配的行?

php - 我可以将数组绑定(bind)到 PDO 查询中的 IN() 条件吗?

php - Laravel:如何设置带有条件的自定义列?

javascript - 如何将字符串集成到 JavaScript 函数名称中?

php - mysql_result 在 php 中导致错误

php - MySQLi重定向问题

php - Laravel 基于var 调用静态函数

php - 使用 PHP 从 URL 字符串获取文件路径/扩展名

php - Mysql insert if not exists without unique constraint(不想依赖回滚错误)(PHP + PDO)

mysql - Laravel/PDO 没有转义反斜杠或引号?