Mysql
 sql >> база данни >  >> RDS >> Mysql

Работа с указатели на файлове в csv

  1. Е fgets() най-добре да използвате за това? Това е добър начин да го направите. Друга възможност е да прочетете целия файл в масив с file() , след това обиколете масива с foreach() .

  2. Трябва ли да включа обратно извикване? Не. Просто изпълнете заявката, след като прочетете всяка партида редове от файла.

  3. Откъде да започна? Когато броячът достигне размера на партидата, изпълнете заявката. След това задайте брояча обратно на 0 и задайте низа на заявката обратно към първоначалната стойност. И накрая, в края на цикъла ще трябва да изпълните заявката с останалите стойности (освен ако размерът на файла е точно кратен на размера на партидата, в който случай няма да остане нищо).

$batch_size = 100;
$counter = 0;

//instead of executing query one by one,
//let us prepare 1 SQL query that will insert all values from the batch

$sql_prefix ="INSERT INTO workorderstest(id,parentid,f1,f2,f3,f4,f5,f6,f7,f8,f9,f10) VALUES ";
$values = "";

while (($line = fgets($handle)) !== false) {
    $values .= "($line),";
    $counter++;
    if ($counter == $batch_size) {
        $values = substr($values, 0, strlen($values) - 1);
        $conn->query($sql_prefix . $values) or die($conn->error);
        $counter = 0;
        $values ="";
    }
}
if ($counter > 0) { // Execute the last batch
    $values = substr($values, 0, strlen($values) - 1);
    $conn->query($sql_prefix . $values) or die($conn->error);
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Неизвестна колона в списъка с полета

  2. Производителност на MySQL:JOIN ON срещу WHERE

  3. свързаността с базата данни се проваля след създаване на jar файл

  4. рейк прекратен! неинициализирана константа Mysql2

  5. Как мога да получа процента от общия брой редове с mysql за група?