在我的代码中,应该为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);
}
我很乐意回答。谢谢!
答案 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"]}'";
}