这是在php网页
我有一个链接www.example.com/add_new.php?code=1234[]&code=4321[]&code=4263[]&attend=1
我需要更新code
标记的数据库参加attend="1"
我可以让它工作,如果我只有一个。但是,当我有多个时,我可以循环编辑所有值吗?
$codes = $_GET['code'];
foreach ($codes as $code) {
$sql = "UPDATE guests SET attend='$isattend' WHERE code=$add";
}
这是什么语法?
现在它仅应用code=4263[]
上的最后一个并标记4263 as attend=1
,但我需要foreach
感谢。
答案 0 :(得分:2)
使用?code=1234&code=4321&code=4263&attend=1
之类的查询字符串,您的code
值将为4263
。导致以前的值被以下覆盖。
要在查询字符串中传递多个代码,您应该使用[]
:
?code[]=1234&code[]=4321&code[]=4263&attend=1
然后在$_GET['code']
中你将有一个数组:
$codes = $_GET['code'];
// also you can check if $codes is array with `is_array` function
foreach ($codes as $code) {
// do some database related stuff
$sql = "UPDATE guests SET attend='$isattend' WHERE code=$add";
}
答案 1 :(得分:2)
你走在正确的轨道上。如果您有要更新的项目数组,则可以循环它们并执行更新查询。你的回复中有很多东西让我认为你应该退后一步并检查基础知识。
首先,foreach循环看起来像这样:
std::cout
接下来,你真的不想像你一样编写SQL查询。这是一个坏主意,因为人们可以利用您的代码并通过 SQL注入
攻击您为了防止这种情况,您可以使用PHP附带的名为PDO的库:http://php.net/manual/en/book.pdo.php
您将使用一种称为预准备语句的东西,它可以让您设计一个SQL查询,然后将值注入其中,这有助于防止所有可怕的注入攻击。例如,您的可能看起来像
std::cout << std::endl
我会告诉你如何实现这个建议。祝你好运!