虽然这里有一些相同的问题,但我仍然想发布我自己的问题,因为我认为我已经解决了,但它不起作用。这是以下代码:
$i=1;
while ( $i<= 10)
{
$i++;
$sql = "INSERT INTO job (Category, Title, Type) VALUES ('$_POST[cat]','$_POST[title]','$_POST[type]')";
}
不是要一个一个地插入10个数据吗?但它只插入1个数据。为什么会这样?
虽然这里有一些相同的问题,但我仍然想发布我自己的问题,因为我认为我已经解决了,但它不起作用。这是以下代码:
$i=1;
while ( $i<= 10)
{
$i++;
$sql = "INSERT INTO job (Category, Title, Type) VALUES ('$_POST[cat]','$_POST[title]','$_POST[type]')";
}
不是要一个一个地插入10个数据吗?但它只插入1个数据。为什么会这样?
您无需在此代码中插入任何内容,只需为字符串分配一个值$sql
(并将其覆盖 10 次)。我猜你在while循环之后执行查询。
也许你只调用mysqli_query($conn, $query)
一次,把它放在循环中。
这是我插入多个结果的方式
$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
作为要在单个查询中插入的数组。
$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);
}
$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;
你可以这样做。您可以使用单个查询来代替运行 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 来运行它。
看到您每次迭代都在构建完全相同的 sql 字符串。
您的代码应该是:
$i=1;
while ( $i<= 10)
{
$i++;
$sql = "INSERT INTO job (Category, Title, Type)
VALUES ('{$_POST[cat]}','{$_POST[title]}','{$_POST[type]}')";
mysql_query($sql);
}
注意[]
您可以按照以下方式进行操作...
$i=1;
while ( $i<= 10) {
mysql_query("INSERT INTO job (Category, Title, Type) VALUES('".$_POST[cat]."','".$_POST[title]."','".$_POST[type]."')");
$i++;
}