如果Post值不为null,则更新数据库

Bha*_* P. 3 php mysql sql

我只是在$ _POST [ value ]不为null 时才尝试更新表Users .如果为null,则列中已存在的值应保留.

$query = "UPDATE `Users` 
SET FirstName = COALESCE(:firstName, FirstName), LastName = ISNULL(:lastName, LastName), City = :city, State = :state WHERE Email = :email";
$stmt = $dbh->prepare($query);
$stmt->bindValue(':firstName', $firstName);
$stmt->bindValue(':lastName', $lastName);
$stmt->bindValue(':city', $city);
$stmt->bindValue(':state', $state);
$stmt->bindValue(':email', $email);
$stmt->execute();
Run Code Online (Sandbox Code Playgroud)

我为FirstName列尝试了COALESCE,为LastName尝试了ISNULL.COALESCE用空格(NULL)替换我的值,这与我想要的完全相反,ISNULL似乎不起作用.

sge*_*des 5

假设你的意思COALESCE是用空格('')替换FirstName,那么尝试使用NULLIF:

UPDATE `Users` 
SET FirstName = COALESCE(NULLIF(:firstName,''), FirstName) ...
Run Code Online (Sandbox Code Playgroud)

我假设POST发布空白.

祝好运.