sql >> データベース >  >> RDS >> Mysql

PDOを使用して特定の列を含むcsvファイルをロードします

    LOAD DATA INFILEに記載されているとおり 構文

    つまり、列リストにはデータベース列を記述する必要があります。 (またはユーザー変数)各入力フィールド (各データベース列がどの入力フィールドにあるかを説明するのではなく)割り当てる必要があります。もちろん、これは、入力ファイルにフィールド名を含める必要がないため、すべての状況で後者のアプローチを採用することは不可能であることに気付いたときに明らかです。

    したがって、次のことが必要です。

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

    また、IGNORE 1 LINESを追加する必要があります (フィールド名を含む)最初の行をスキップするためのコマンドへ:

    $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. WHM / cPanelサーバーでのProxySQLを使用したMySQLレプリケーション:パート1

    2. Linux上のPostgreSQLの構成パラメーターwork_mem

    3. 日付範囲の機器の総数を計算する

    4. C#、MySQL-コマンド実行中に致命的なエラーが発生しました-他の解決策を確認しました、私が見逃しているもの