我有一个UPDATE查询并使用Ajax,我想知道任何值是否为空我只能更新数据库中非空的值.我不知道是否可以使用if语句或其他东西来检查以跳过空值.我知道我可以添加另一个表单元素,但只是想知道是否有其他解决方案.
仅当数据是来自前端表单的POST时.如果数据不是POST不更新this Title='.$ title.',
$id = $_POST['id'];
$title = "";
$description = $_POST['Description'];
$date = $_POST['Date'];
$query = 'UPDATE user SET
`id` = '.$id.',
`Title` = '.$title .',
`Description` = '.$description.',
`Date` = '.$date =.'
WHERE `id` = '.$id;
$result = mysql_query($query) or die("<b>A fatal MySQL error occured</b>.<br />Query: ".$query."<br />Error: (".mysql_errno().") ".mysql_error());
Run Code Online (Sandbox Code Playgroud)
更新:这对我有用.谢谢卡里姆达拉夫
$ query ="UPDATE user SET
Title= Coalesce($ title,Title)etc ...
尝试使用Coalesce.
$query = " UPDATE user
SET
`Title` = CASE WHEN `Title`='' or `Title` IS NULL THEN '$title' END,
`Description` = CASE WHEN `Description`='' Or `Description` IS NULL THEN '$description' END,
`Date` = CASE WHEN `Date`='' Or Date` IS NULL THEN '$date' END
WHERE `id` = '".$id."' ";
Run Code Online (Sandbox Code Playgroud)
要么 :
$query = " UPDATE user
SET
`id` = Coalesce('$id''".$id."' , NULLIF(`id`,'')),
`Title` = Coalesce('$title''".$title."',NULLIF(`Title`,'') ) ,
`Description` = Coalesce('$description''".$description."' , NULLIF(`Description`,'') ) ,
`Date` = Coalesce('$date''".$date."',NULLIF(`Date`,''))
WHERE `id` = '$id''".$id."' ";
Run Code Online (Sandbox Code Playgroud)