Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Praca ze wskaźnikami plików w csv

  1. Czy fgets() najlepiej do tego użyć? To dobry sposób na zrobienie tego. Inną opcją jest wczytanie całego pliku do tablicy za pomocą file() , a następnie przejdź przez tablicę za pomocą foreach() .

  2. Czy muszę włączyć oddzwonienie? Nie. Po prostu wykonaj zapytanie po odczytaniu każdej partii wierszy z pliku.

  3. Od czego zacząć? Gdy licznik osiągnie wielkość partii, wykonaj zapytanie. Następnie ustaw licznik z powrotem na 0 i ustaw ciąg zapytania z powrotem na wartość początkową. Na koniec na końcu pętli musisz wykonać zapytanie z pozostałymi wartościami (chyba że rozmiar pliku był dokładną wielokrotnością rozmiaru wsadu, w takim przypadku nie będzie już nic).

$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. Jak zaimportować zrzut MySQL z wiersza poleceń Z nadpisaniem?

  2. Kiedy zamykać kursory za pomocą MySQLdb

  3. Jak wybrać wszystkie rekordy, które znajdują się 10 minut w bieżącym znaczniku czasu w MySQL?

  4. Jak mogę przywrócić pełne uprawnienia użytkownika root MySQL?

  5. IDENTYFIKOWANE PRZEZ „hasło” w MySQL