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

时间:2017-09-06 20:49:58

标签: php arrays forms sqlsrv

我有一个提交多个条目的表单,并且需要能够将这些条目组合到一个SQL语句中。单击“提交”按钮后," firstname"," lastname"等等会被放入自己的数组中,所以我有这样的内容:

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

$lastname = array(
'1' => smith, 
'2' => jones,
'3' => ross
);

我想将它们组合起来以获得

的输出

" John Smith,Mike Jones,Pete Ross" (也许是第三个数组?)这样我就可以像

那样创建一个SQLSRV查询
"INSERT INTO database_table
(firstname, lastname)
Values  ($firstnames, $lastnames)"

原谅我的语法,这是漫长的一天,我一直在试图解决这个问题(而且我是一个新手)。

1 个答案:

答案 0 :(得分:1)

您需要了解计划插入的值对数,然后生成相应的数字。这是一个基本的例子(请不要使用这个,因为这会让你容易受到SQL注入):

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

$lastname = array(
    '1' => smith, 
    '2' => jones,
    '3' => ross
);

$query = '
    INSERT INTO database_table (firstname, lastname)
    VALUES 
';
$value_array = array();

foreach ($firstname as $index => $value) {
    $value_array[] = sprintf('("%s","%s")', $value, $lastname[$index]);
}

$query .= implode(', ', $value_array);

echo $query;

示例:https://eval.in/856592

你应该做的是使用类似上面的内容来生成字符串,以便与预先准备好的语句一起使用,例如:

foreach ($firstname as $index => $value) {
    $value_array[] = sprintf('(?, ?)');
}

然后在另一个循环中绑定适当的参数。这样更安全。

阅读有关预准备陈述的更多信息:http://php.net/manual/en/mysqli.quickstart.prepared-statements.php

甚至更好:http://php.net/manual/en/pdo.prepared-statements.php