更新mysql而不替换空字段

时间:2014-03-19 14:03:41

标签: php mysql

我正在尝试更新而不替换空字段,例如,如果我有字段编号1并且它是空的没有任何事情发生在数据库中但如果字段编号2有一些内容我希望它更新。发生的事情就是当我这样做时,空字段进入数据库并将字段的内容替换为空值。

我需要一个如何做的例子。

PD:我正在使用PHP OOP。

这是我的疑问:

$conio = "UPDATE affiliates SET nickname = '$nickname', fullname = '$fullname' , email = '$email', skype = '$skype', country = '$country', address = '$address', city = '$city', zip = '$zip', bankname = '$bankname', bankaccount = '$bankaccount', beneficiary = '$beneficiary', username = '$username', password = '$password', whene = '$whene' WHERE id = '$users'";
        mysqli_query($this->link, $conio) or die (mysqli_error($this->link));

1 个答案:

答案 0 :(得分:0)

示例:如果要更新值不为空的输入。

<?php
...
$sql = "UPDATE affiliates SET ";
$sql_where = "WHERE id = '$users'";
$sql_set = "";

$firstName = $_POST['firstName']; 
if(!empty($firstName))
   $sql_set .= "firstName = '$firstName',";

$lastName = $_POST['lastName']; 
if(!empty($lastName))
   $sql_set .= "lastName = '$lastName',";

和所有其他输入相同的事情...... ...

mysql_query($sql.$sql_set.$sql_where);

当然有更好的方法来编写这段代码(例如:在$ _POST的元素上使用for循环),但这就是概念,...