如何从表单提交(PHP)中组合多个数组?

如何从表单提交(PHP)中组合多个数组?,php,arrays,forms,sqlsrv,Php,Arrays,Forms,Sqlsrv,我有一个表单可以提交多个条目,并且需要能够将这些条目合并到一个SQL语句中。单击Submit按钮时,“firstname”、“lastname”等将被放入它们自己的数组中,因此我有如下内容: $firstname = array( '1' => john, '2' => mike, '3' => pete ); $lastname = array( '1' => smith, '2' => jones, '3' => ross ); 我想把这些结合起来

我有一个表单可以提交多个条目,并且需要能够将这些条目合并到一个SQL语句中。单击Submit按钮时,“firstname”、“lastname”等将被放入它们自己的数组中,因此我有如下内容:

$firstname = array(
'1' => john, 
'2' => mike,
'3' => pete
);

$lastname = array(
'1' => smith, 
'2' => jones,
'3' => ross
);
我想把这些结合起来,得到

“John Smith,Mike Jones,Pete Ross”(可能是第三个数组?),这样我就可以像

"INSERT INTO database_table
(firstname, lastname)
Values  ($firstnames, $lastnames)"

请原谅我的语法,这是漫长的一天,我一直在拼命想弄明白这一点(加上我是新手)。

你需要找出你计划插入多少个值对,然后生成相应的数字。下面是一个基本示例(请不要完全使用此选项,因为这会使您容易受到SQL注入的攻击)

例如:

您应该使用上面的方法生成字符串,以便与准备好的语句一起使用,例如:

foreach ($firstname as $index => $value) {
    $value_array[] = sprintf('(?, ?)');
}
然后在另一个循环中绑定适当的参数。这要安全得多

阅读有关准备好的声明的更多信息:


或者更好:

为什么它们必须在1个查询中?数据库中的每一行都应该是它自己的查询,可能在循环中是动态的。您可以将绑定参数循环到查询,以便一次执行所有插入。您肯定应该使用预先准备好的语句。非常感谢您,作为一名新手,我没有深入地处理数组,也没有使用过sprintf()。我应该能够得到一些与你所奠定的基础,谢谢!
foreach ($firstname as $index => $value) {
    $value_array[] = sprintf('(?, ?)');
}