虽然这里有一些相同的问题,但我仍然希望发布我自己的问题,因为我认为我已经找到了解决方案,但它没有用。以下是代码:
$i=1;
while ( $i<= 10)
{
$i++;
$sql = "INSERT INTO job (Category, Title, Type) VALUES ('$_POST[cat]','$_POST[title]','$_POST[type]')";
}
不应该逐个插入10个数据吗?但它只插入1个数据。为什么会这样?
答案 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++;
}