Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 一次插入多个数据_Php_Mysql_Phpmyadmin_Multiple Insert - Fatal编程技术网

Php 一次插入多个数据

Php 一次插入多个数据,php,mysql,phpmyadmin,multiple-insert,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]')"; } $i=1; 虽然($i您不需要在此代码中插入任何内容,只需为字符串$sql指

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

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

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

也许您只调用了一次
mysqli\u query($conn,$query)
, 将其放入循环中。

$mysqli=newmysqli(“主机”、“用户”、“通行证”、“数据库名称”);
$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=0;$i<10;$i++) { $sql=“插入作业(类别、标题、类型) 值(“$mysqli->real_-escape_字符串($_-POST['cat'])。”,“$mysqli->real_-escape_字符串($_-POST['title'])。”,“$mysqli->real_-escape_字符串($_-POST['type'])。”); $mysqli->query($sql); }
$i=1;
$addCount=0;

而($i这是我插入多个结果的方式

$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);
$sql=“插入作业(类别、标题、类型)值”;
对于($i=0;$iquery($sql);

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

您可以这样做,而不是运行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";
$i=1;

而($i可以看到每次迭代都在构造完全相同的sql字符串。
您的代码应该是:

$i=1;


while($i你可以像下面这样做

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

当($I)插入相同的内容10次时,可能是一个唯一的列。检查您的SQL错误。是的,我想。@raheelshan
echo$SQL;
然后在phpmyadmin中多次复制它,查看您得到了什么错误是的,我有一个名为ID的自动递增主列。但这怎么可能是问题?没有显示SQL错误。@WayneWhitty
 $i=1;
 while ( $i<= 10) {
   mysql_query("INSERT INTO job (Category, Title, Type) VALUES('".$_POST[cat]."','".$_POST[title]."','".$_POST[type]."')");
   $i++;
}