【发布时间】:2020-11-12 17:05:11
【问题描述】:
我正在尝试使用 if 条件进行 postgres 更新,以在尝试更新之前检查参数是否为空。
当参数为空字符串时,期望的结果是不更新。
我似乎无法找出正确的方法来做到这一点。我的第一次尝试如下:
$stmt = $db->prepare("
UPDATE users SET
fname = IF(trim(:fname) = '', fname, :fname)
WHERE username = :username");
$stmt->bindParam(':username', $username);
$stmt->bindParam(':fname', $fname);
$stmt->execute();
然后我的第二次尝试是使用:
$stmt = $db->prepare("
UPDATE users SET fname =
IF
trim(:fname) = ''
THEN
fname
ELSE
:fname
END IF;
WHERE username = :username
");
$stmt->bindParam(':username', $username);
$stmt->bindParam(':fname', $fname);
$stmt->execute();
使用 IF 语句执行此操作的正确方法是什么?
【问题讨论】:
标签: php postgresql pdo