sql >> Database teknologi >  >> RDS >> Mysql

Indlæs en csv-fil med specifikke kolonner ved hjælp af PDO

Som dokumenteret under LOAD DATA INFILE Syntaks :

Med andre ord skal kolonnelisten beskrive databasekolonnerne (eller brugervariabler), som hver indtastningsfelter til skal tildeles (i stedet for at beskrive, i hvilket inputfelt hver databasekolonne kan findes). Dette er naturligvis indlysende, når man indser, at inputfilen ikke behøver at indeholde feltnavne, og det ville derfor være umuligt at anvende den sidstnævnte tilgang under alle omstændigheder.

Derfor ønsker du:

$columns = '(vendor_id, receiver_no, purchase_order_no, destination, po_status)';

Du skal også tilføje IGNORE 1 LINES til kommandoen for at springe den første linje over (med feltnavne):

$affectedRows = $pdo->exec("
    LOAD DATA LOCAL INFILE ".$pdo->quote($csvfile)." INTO TABLE `$databasetable`
      FIELDS TERMINATED BY ".$pdo->quote($fieldseparator)."
      LINES TERMINATED BY ".$pdo->quote($lineseparator)."
      IGNORE 1 LINES ". $columns);


  1. PostgreSQL Connection Pooling:Del 2 – PgBouncer

  2. MySQL:Sammenlign MELLEM tid

  3. oracle plsql:hvordan man parser XML og indsætter i tabellen

  4. Hvordan indstilles forespørgselsparametre i MySQL Query Browser?