将数组数据更新到循环中的数据库

时间:2017-05-23 02:32:28

标签: php mysql arrays

我面临一个问题,即更新一个具有相同名称的值到数据库。

//while loop
{
<input  name="exists[]" value='$row1[Status_Name]'></input>
}

下面是我如何将数据更新到数据库

if (isset($_POST["updsts"]))
{
    $gid = $_POST["id"];

    $sqlq = "SELECT * FROM orderstatus WHERE Status_Group = '$gid'";

    $result = mysqli_query($conn, $sqlq);

    $rowcount = mysqli_num_rows($result);

    if ($rowcount == 0)
    echo "No records found";        
    else 
    {
        $x = '0';

        while( $x<$rowcount)
        {
            $stsname = $_POST["exists[$x]"];

            $sqlu = "UPDATE orderstatus SET 
            Status_Name = '$stsname'
            WHERE Status_Group = '$gid'";

            $x++;
        }
}

我的$row1[Status_Name]会在表格中显示所有status_name。

1 个答案:

答案 0 :(得分:0)

您可以遍历post数组键:

foreach ($_POST['exists'] as $val) {
  // Do your updates here
}

此外,此代码还有许多您应该注意的其他严重问题。

  • 您没有转义HTML上下文中使用的任何数据。对于要连接到HTML的任意数据,请使用htmlspecialchars()。如果没有这个,您可能会冒险创建无效的HTML以及注入脚本的潜在安全问题。
  • 您没有逃避查询中使用的任何数据!就目前而言,几乎任何人都可以使用您的数据库数据做任何他们想做的事情。自动机器人点击这些脚本并一直利用它们。始终使用参数化查询。永远不要将数据连接到查询的上下文中!
  • 不需要这个选择然后更新循环。只需使用一次更新。