【问题标题】:Change all form values at once (PHP) and leave blank forms without values going blank. How to?一次更改所有表单值 (PHP) 并留下空白表单,而不会将值变为空白。如何?
【发布时间】:2016-08-19 01:27:52
【问题描述】:

我一直在尝试创建一个更新表单。这个想法是我网站中的一些链接应该在更新时改变。我已经做到了,但我想要的是表单末尾的“回显“更改成功!”只显示一次。

 <?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])) 来更改它们;例如,query2query3query4

但是当我这样做时,成功消息会出现四次。我希望能够一次全部更改,并且消息只显示一次。

另外,如果可能的话,如果表格留空,我希望这些值不要变为空白,这也是我遇到的问题。

提前致谢:D

【问题讨论】:

  • 您可以在一个查询中完成所有这些更新。您也对 SQL 注入持开放态度。

标签: php forms mysqli


【解决方案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 TablesEven 发生了什么 if you are escaping inputs, its not safe! 使用prepared parameterized statements

我可以建议你看看basic SQL tutorial

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-15
    • 1970-01-01
    • 2012-04-13
    • 1970-01-01
    • 2023-01-16
    • 1970-01-01
    • 2011-05-25
    • 2014-04-28
    相关资源
    最近更新 更多