如何将表单数组值插入MySQL?

Mor*_*lie 0 php mysql post

我被卡住了,我想将数据字段中的表单数据插入到MySQL中:

<input type='text' name='name[]' />` and `<input type='text' name='url[]' />
Run Code Online (Sandbox Code Playgroud)

我知道如何输出一个字段的数据,如本例所示

foreach($_POST['name'] as $name)
{
  echo $name;
}
Run Code Online (Sandbox Code Playgroud)

但在我的形式,我有两个<input type='text' name='name[]' />,<input type='text' name='url[]' />我怎么能让这个正常工作?

Joh*_*ica 5

我会尽量避免一遍又一遍地查询数据库,只需将所有内容放在一个大的插入语句中:

$query = "INSERT INTO table1 (name, url) VALUES ";
foreach($_POST['name'] as $i => $name) 
{ 
  // Get values from post.
  $name = mysql_real_escape_string($name);
  $url = mysql_real_escape_string($_POST['url'][$i]);

  // Add to database
  $query = $query." ('$name','$url') ,";
}
$query = substr($query,0,-1); //remove last char
$result = mysql_query($query);
Run Code Online (Sandbox Code Playgroud)

这样你只需要打一次数据库,使插入更快.
另一个好处是,如果引擎支持事务(InnoDB等),则所有插入都发生在单个事务中.