一次插入多个数据

时间:2013-01-22 09:25:41

标签: php mysql phpmyadmin multiple-insert

虽然这里有一些相同的问题,但我仍然希望发布我自己的问题,因为我认为我已经找到了解决方案,但它没有用。以下是代码:

$i=1;
while ( $i<= 10) 
{
    $i++;
    $sql    =   "INSERT INTO job (Category, Title, Type) VALUES ('$_POST[cat]','$_POST[title]','$_POST[type]')";
}

不应该逐个插入10个数据吗?但它只插入1个数据。为什么会这样?

8 个答案:

答案 0 :(得分:3)

您不在此代码中插入任何内容,只需为字符串$sql指定一个值(并将其覆盖10次)。我猜你在 while循环之后执行查询

答案 1 :(得分:2)

也许你只打电话给mysqli_query($conn, $query)一次, 把它放在循环中。

答案 2 :(得分:2)

这是我插入多个结果的方式

$sql = "INSERT  INTO job(category,title,type) VALUES";
for($i=0;$i<sizeof($category);$i++)
{
   if($i= sizeof($category) - 1)
    $sql. = "(".$category[$i].",".$title[$i].",".$type[$i].");"; 
   else
    $sql. = "(".$category[$i].",".$title[$i].",".$type[$i]."),"; 
}
 $mysqli->query($sql);

$category,$title,$type视为要在单个查询中插入的数组。

答案 3 :(得分:1)

$mysqli = new MySQLi("host","user","pass","db_name");

for($i = 0; $i < 10; $i++)
{
  $sql = "INSERT INTO job (Category, Title, Type)
          VALUES ('" . $mysqli->real_escape_string($_POST['cat']) . "','" . $mysqli->real_escape_string($_POST['title']) . "','" . $mysqli->real_escape_string($_POST['type']) . "')";
  $mysqli->query($sql);
}

答案 4 :(得分:1)

$i=1;
$addCount=0;
while ( $i<= 10) 
{
    $i++;
    $sql    =   "INSERT INTO job (Category, Title, Type) VALUES ('$_POST[cat]','$_POST[title]','$_POST[type]')";
    if(mysql_query($sql)){
        $addCount++;
    }
}

echo "Total number of records added: ".$addCount;

答案 5 :(得分:1)

你可以这样做。而不是运行10个查询 你可以用单一查询来做到这一点

$i=1;

while ( $i<= 10) 
{
    $i++;
    $values[]       =   "('$_POST[cat]','$_POST[title]','$_POST[type]')";
}
$new_values =   implode(',',$values);
$sql    =   "INSERT INTO job (Category, Title, Type) VALUES $new_values";

现在你可以使用mysqli_query来运行它。

答案 6 :(得分:1)

看到你每次迭代都构建完全相同的sql字符串 你的代码应该是:

$i=1;
while ( $i<= 10)
{
$i++;
$sql = "INSERT INTO job (Category, Title, Type)
VALUES ('{$_POST[cat]}','{$_POST[title]}','{$_POST[type]}')";
mysql_query($sql);
}



请注意[]

答案 7 :(得分:1)

你可以像以下一样......

 $i=1;
 while ( $i<= 10) {
   mysql_query("INSERT INTO job (Category, Title, Type) VALUES('".$_POST[cat]."','".$_POST[title]."','".$_POST[type]."')");
   $i++;
}