0

虽然这里有一些相同的问题,但我仍然想发布我自己的问题,因为我认为我已经解决了,但它不起作用。这是以下代码:

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

不是要一个一个地插入10个数据吗?但它只插入1个数据。为什么会这样?

4

8 回答 8

3

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

于 2013-01-22T09:28:13.583 回答
2

也许你只调用mysqli_query($conn, $query)一次,把它放在循环中。

于 2013-01-22T09:28:35.247 回答
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作为要在单个查询中插入的数组。

于 2013-01-22T09:31:29.360 回答
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);
}
于 2013-01-22T09:30:54.660 回答
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;
于 2013-01-22T09:31:14.730 回答
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 来运行它。

于 2013-01-22T09:31:46.893 回答
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);
 }



注意[]

于 2013-01-22T09:33:46.053 回答
1

您可以按照以下方式进行操作...

 $i=1;
 while ( $i<= 10) {
   mysql_query("INSERT INTO job (Category, Title, Type) VALUES('".$_POST[cat]."','".$_POST[title]."','".$_POST[type]."')");
   $i++;
}
于 2013-01-22T10:43:12.817 回答