gpt4 book ai didi

php - 带有 $i 和 $_POST 值的 SQL 循环

转载 作者:太空宇宙 更新时间:2023-11-03 11:13:44 24 4
gpt4 key购买 nike

我正在尝试循环访问表单中的多个结果,但无法完全正确。

  for ($i=1;$i<$total;i++)
{
mysql_query("INSERT INTO MYSQL(value1,value2,value3) VALUES('{$i}','{$_POST['$iH']}', '{$_POST['$iA']}'");
}

我希望 $_POST['$iH']$_POST['1H'] 相同,$_POST['2H'] , $_POST['3H']

最佳答案

像这样:

for ($i = 1; $i < $total; $i++) { // <--- You had a typo here
$sql = "INSERT INTO MYSQL(value1,value2,value3) ";
$sql .= "VALUES('{$i}','" . $_POST[$i . 'H'] . "', '" . $_POST[$i . 'A'] . "')";
mysql_query($sql);
}

但是,有两个大问题。

多个查询

天哪,太浪费了!改为发送一个:

$rows = Array();
for ($i = 1; $i < $total; $i++) {
$rows[] = "('{$i}','" . $_POST[$i . 'H'] . "', '" . $_POST[$i . 'A'] . "')";
}

$sql = "INSERT INTO MYSQL(value1,value2,value3) VALUES('" . implode("','", $rows) . "')";
mysql_query($sql);

SQL注入(inject)

令我感到困惑的是,在 2011 年,人们仍然不明白这一点。

如果您要坚持使用 the ancient mysql API (甚至不是 the OO version?! )而不是 PDO ,养成清理输入的习惯:

$rows = Array();
for ($i = 1; $i < $total; $i++) {
$rows[] = "('{$i}'," .
"'" . mysql_escape_string($_POST[$i . 'H']) . "'," .
"'" . mysql_escape_string($_POST[$i . 'A']) . "')";
}

$sql = "INSERT INTO MYSQL(value1,value2,value3) VALUES('" . implode("','", $rows) . "')";
mysql_query($sql);

好吧,如果你的 API 中没有多查询支持,它不太可能在这里给你带来很大的麻烦,但它可以在身份验证例程中做到。在这方面习惯于正确编写脚本。

关于php - 带有 $i 和 $_POST 值的 SQL 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6726897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com