вставить несколько данных одним запросом без цикла MySQL PHP - PullRequest
0 голосов
/ 18 апреля 2019

Я хочу загрузить оценки учеников .. поэтому, если я использую цикл для вставки нескольких оценок учеников.

Это делает нагрузку на сервер ?? потому что запрос выполняется несколько раз. Есть ли другой способ вставить несколько данных без цикла.

<?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");
}

есть ли способ вставить несколько данных без цикла?

Ответы [ 2 ]

0 голосов
/ 18 апреля 2019

например, этот блок кода вы можете заменить своим собственным кодом.

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

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

LARAVEL USAGE

        $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);
0 голосов
/ 18 апреля 2019

Да, вы можете вставить несколько строк в одну инструкцию SQL, например:

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

Значения для каждой строки заключены в скобки и разделены запятой.

Использование API базы данных более высокого уровня, такого как propel, Laravel Eloquent, doctrine, делает этот тип операции простым.

...