如何更新一个值,同时保持另一个如何是MYSQL / PHP

时间:2018-02-12 18:50:17

标签: php mysql

在我的代码中,应该为UPDATE选择两个值(lebensjahre,fazit)。但是当我只更新其中一个并让另一个值为空时,空的那个就消失了。我找不到,代码有什么不对。这是:

if (mysqli_error ($verbindung)){
    echo file_get_contents("denied.html");
}else {
    if (isset ($_POST["id"])){
        $sql = "UPDATE probanten SET
        fazit = '{$_POST ["fazit"]}',
        lebensjahre = '{$_POST ["lebensjahre"]}'
        WHERE
        ID = '{$_POST ["id"]}'";
        $abfrage = mysqli_query($verbindung, $sql);
    }

我很乐意回答。谢谢!

2 个答案:

答案 0 :(得分:2)

您可以只更新已更改的值:

UPDATE probanten SET
 fazit = '{$_POST ["fazit"]}'
WHERE
 ID = '{$_POST ["id"]}'"

或者保持不变的值是指自己:

UPDATE probanten SET
 fazit = '{$_POST ["fazit"]}',
 lebensjahre = lebensjahre
WHERE
 ID = '{$_POST ["id"]}'"

强制性的侧节点:您的代码易受攻击到SQL-Injections,在查询中使用它们之前清理您的输入!

答案 1 :(得分:0)

如果您只想更新其中一个值,则不要将另一个值放入SQL中。这应该被考虑"学习"代码并不是为了完全生产。

if ( ! empty($_POST ["fazit"]) || ! empty($_POST ["lebensjahre"]) ) {
    $comma = ''; // we're not sure we need the comma
    $sql = "UPDATE probanten SET";
    if ( ! empty($_POST ["fazit"]) ) {
        $sql .= " fazit = '{$_POST ["fazit"]}' ";
        $comma = ',';
    }
    if ( ! empty($_POST ["lebensjahre"]) ) {
        $sql .= $comma . " lebensjahre = '{$_POST ["lebensjahre"]}' ";
    }

    $sql .= " WHERE ID = '{$_POST ["id"]}'";
}