我希望用户更新他们想要在d数据库表中的任何字段,但我不希望UPDATE .. SET删除现有的空提交记录,如果他们提交而不改变所有田野..但只改变他们希望那些以..PHP - MYSQLI - UPDATE DATABASE
$sql = "UPDATE table SET username = '$username', email = '$email',
fname = '$fname', lname = '$lname', address = '$address', city = '$city',
country = '$country', phone = '$phone', aboutme = '$aboutme' WHERE email = '$email'";
如果用户只更新地址,然后电话提交他项..这个指令可以擦除未在表单填写等领域...我不希望发生这种情况。请看看这个。由于
请我曾尝试你的建议,但它不是为我工作。我可能做错了什么 - 我是新来的PHP - 这是我下面的代码:
$sql = "UPDATE user_profile SET ";
if ($username!="")
$sql ."username = '$username',"
if ($fname!="")
$sql ."fname = '$fname',"
if ($lname!="")
$sql ."lname = '$lname',"
if ($address!="")
$sql ."address = '$address',"
if ($city!="")
$sql ."city = '$city',"
if($country!="")
$sql ."country = '$country', "
if($phone!="")
$sql ."phone = '$phone', "
if($aboutme!="")
$sql ."aboutme = '$aboutme' "
$sql ."WHERE email = '$email'";
$query = mysqli_query($database,$sql);
if($query)
{
$message = "<div class=\"btn btn-lg btn-default\"><i class=\"text-success text-center\">Update Successful!</i></div>";
//echo "update successful";
}
如果他们正在更新信息,那么表单中填充了已存储在数据库中的任何内容。这样,没有空值被传递,并且用户不必再次填写表单中他们不想更新的所有内容 –
@AndrewNolan正确;这是我过去使用过的,也是为这个问题想到的。+1 –