将数组值+单个表单值插入所有行

时间:2013-04-21 23:06:59

标签: php mysql

我正在尝试将表单中的值插入到我的mysql数据库中。我有单个值表单+表单中的数组值。如何将数组值插入到我的数据库中,并将单个表单值附加到所有行?

HTML:

Start:<br>
    <input type="text" name="start" id="start">

End:<br>
    <input type="text" name="end" id="end">

<input type="text" name="item[]" placeholder="Manufacturer #" /><br>

    <input type="text" name="description[]" placeholder="Description" /><br>

    <input type="text" name="item[]" placeholder="Manufacturer #" /><br>

    <input type="text" name="description[]" placeholder="Description" /><br>

    <input type="text" name="item[]" placeholder="Manufacturer #" /><br>

    <input type="text" name="description[]" placeholder="Description" /><br>

PHP:

if (isset($_POST['submit']))
            {
                $link = mysql_connect('localhost',     'user', 'pass');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("mydb") or die(mysql_error());
echo 'Connected successfully';

$query = "INSERT INTO agreement (start, end, item_number, item_description) VALUES ";
foreach($_POST['item'] as $i => $item) 
{ 
  // Get values from post.
  $item = mysql_real_escape_string($item);
  $description = mysql_real_escape_string($_POST['description'][$i]);
  $start = mysql_real_escape_string($_POST['start'][$i]);
  $end = mysql_real_escape_string($_POST['end'][$i]);

  // Add to database
  $query = $query." ('$start','$end','$item','$description') ,";
}
$query = substr($query,0,-1); //remove last char
$result = mysql_query($query);
            }

我将代码更改为mysqli / pdo,我知道当前的代码是不安全的。

感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:2)

只使用$_POST['start']$_POST['end']而无需数组访问,因为每次都是相同的。您可以对项目和描述使用数组访问。