sql >> Databáze >  >> RDS >> Mysql

Načtěte soubor csv se specifickými sloupci pomocí PDO

Jak je zdokumentováno v části LOAD DATA INFILE Syntaxe :

Jinými slovy, seznam sloupců by měl popisovat sloupce databáze (nebo uživatelských proměnných), do kterých jsou každá vstupní pole by měly být přiřazeny (spíše než popisovat, ve kterém vstupním poli lze každý sloupec databáze nalézt). To je samozřejmě zřejmé, když si uvědomíme, že vstupní soubor nemusí obsahovat názvy polí, a proto by nebylo možné za všech okolností použít druhý přístup.

Proto chcete:

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

Budete také muset přidat IGNORE 1 LINES k příkazu, abyste přeskočili první řádek (s názvy polí):

$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. mysql ERROR 2002 (HY000):Nelze se připojit k místnímu serveru MySQL přes soket '/var/run/mysqld/mysqld.sock' (2)

  2. CloudFormation:Šablona RDS Mysql pro vytvoření DB, tabulek, uživatelů nebo schématu načtení

  3. Způsob přihlášení k ověření pomocí tokenu cookie

  4. Dynamická změna barvy tabulky PHP (Datum) na základě platnosti