我在更新多个与数据库同名的值时遇到问题。
//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。
最佳答案
您可以循环遍历 post 数组键:
foreach ($_POST['exists'] as $val) {
// Do your updates here
}
此外,此代码还有许多您应该注意的其他严重问题。
- 您不会转义 HTML 上下文中使用的任何数据。对要连接到 HTML 中的任意数据使用
htmlspecialchars()
。否则,您将面临创建无效 HTML 以及注入(inject)脚本潜在安全问题的风险。 - 您不会转义查询中使用的任何数据!就目前而言,几乎任何人都可以对数据库数据做任何他们想做的事情。自动化机器人总是攻击这类脚本并利用它们。始终使用参数化查询。切勿将数据连接到查询上下文中!
- 不需要这个选择然后更新循环。只需使用一次更新即可。
关于php - 在循环内将数组数据更新到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44124852/