一个查询插入多个数据而无需循环mysql php

时间:2019-04-18 20:26:02

标签: php mysql database web-development-server

我想上传学生的分数。.因此,如果我使用循环插入多个学生的分数。

是服务器上的负载吗?因为查询执行多次。 有没有其他方法可以插入多个没有循环的数据。

<?php 
$roll_no=$_POST['roll_no'];
$department=$_POST['department'];
$semester=$_POST['semester'];
if($course && $department && $semester)
{
    foreach($roll_no as $c)
    {
        $q="INSERT INTO allocoursestudent(roll_no,department,semester) VALUES('$c','".$department[$c]."','"$semester[$c]"')";
        if(mysqli_query($con,$q))
           {
             $response=  "Data inserted";
           }
    }
    echo($response);
}else
{
    echo("Enter Data first");
}

有没有办法插入多个没有循环的数据?

3 个答案:

答案 0 :(得分:2)

这是解决方法

    <?php 
    $roll_no=$_POST['roll_no'];
    $lenght=count($roll_no);
    $department=$_POST['department'];
    $semester=$_POST['semester'];
    if($course!="" && $department!="" && $semester!="")
    {
        for($i=0;$i<$length;$i++)
        {
$q="INSERT INTO allocoursestudent(roll_no,department,semester) values($roll_no[$i],$department[$i],$semester[$i])";

            if(mysqli_query($con,$q))
               {
                 $response=  "Data inserted";
               }else
               {
               $response=  "Error";
               }
        }
        echo($response);
    }else
    {
        echo("Enter Data first");
    }

答案 1 :(得分:0)

是的,您可以在单个SQL语句中插入多行,如下所示:

insert into tbl (col1, col2)
values (row1_val1, row1_val2), (row2_val1, row2_val2) [...]

每行的值都用括号括起来并用逗号分隔。

使用高级数据库API(例如propel,Laravel Eloquent,toctrine)使这种操作变得简单。

答案 2 :(得分:0)

例如,您可以用自己的代码替换此代码块。

 INSERT INTO table (a,b) VALUES (1,2), (2,3), (3,4);

http://dev.mysql.com/doc/refman/5.5/en/insert.html

LARAVEL用法

        $codes = [];
        for ($i = 0; $i < $count; $i++) {
            $codes[$i]['code'] = $this->genUuid();
            $codes[$i]['secret'] = uniqid();
            $codes[$i]['day'] = request('day');
            $codes[$i]['label'] = request('label');
            $codes[$i]['state'] = 1;
            $codes[$i]['created_at'] = Carbon::now();
            $codes[$i]['updated_at'] = Carbon::now();
        }

        Code::insert($codes);