我一直在尝试创建更新表单。我的想法是,我的网站中的一些链接应该在更新时更改。我已经设法做到了,但我想要的是'echo'成功改变了!“'在表格的最后只显示一次。
<?php
//credentials
if (isset($_POST["submit"])){
$server = 'server';
$user = 'user';
$pw = 'password';
$BD = 'db-of-mine';
//estabelece a conexão
$conn = mysqli_connect($server, $user, $pw, $BD);
if (!$conn) {
die ('<span style="color: #FF0000;">"connection failed: "</span>' . mysqli_connect_error());
}
$home = $_POST["home"];
$apendix = $_POST["apendix"];
$sobre = $_POST["sobre"];
$contato = $_POST ["contato"];
$query1 = "UPDATE form SET home= '$home' WHERE id='1'";
$query2 = "UPDATE form SET apendix= '$apendix' WHERE id='1'";
$query3 = "UPDATE form SET sobre= '$sobre' WHERE id='1'";
$query4 = "UPDATE form SET contato= '$contato' WHERE id='1'";
//$query = "INSERT INTO form (home, apendix, sobre, contato) VALUES ('$home', '$apendix', '$sobre', '$contato')";
if (mysqli_query($conn, $query1)){
echo "Changes successfuly made!";
} else {
echo "ERROR" . $query . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
}
?>
上面的查询仅更改“home”值。我已经设法通过复制和粘贴if (mysqli_query($conn, $query[number]))
来改变它们;例如,query2
,query3
,query4
等。
但是当我这样做时,成功消息会出现四次。我希望能够立即更改它们,并且消息只出现一次。
另外,如果有可能的话,我希望如果表格留空则值不会变为空白,这也是我遇到的问题。
提前致谢:D
答案 0 :(得分:1)
所有这些更新都可以作为一个查询完成
$query1 = "UPDATE form SET home= '$home' WHERE id='1'";
$query2 = "UPDATE form SET apendix= '$apendix' WHERE id='1'";
$query3 = "UPDATE form SET sobre= '$sobre' WHERE id='1'";
$query4 = "UPDATE form SET contato= '$contato' WHERE id='1'";
可以写成
$query = "UPDATE form SET
home= '$home',
apendix= '$apendix',
sobre= '$sobre',
contato= '$contato'
WHERE id='1'";
虽然我必须提到您的脚本存在SQL Injection Attack的风险 看看Little Bobby Tables偶然发生了什么 if you are escaping inputs, its not safe! 使用prepared parameterized statements
我可以建议您查看basic SQL tutorial