現時点では、Web サーバーに手動でアップロードした「data.csv」という CSV ファイルからデータを取得できます。その後、データをデータベースにアップロードできますが、これはすべて正常に機能します。
私ができる必要があるのは:
- ファイルを Web サーバーのルート ディレクトリにアップロードするだけです。
- CSV ファイルのヘッダーの順序に関係なく、たとえば、あるユーザーが列の順序が (名前 | メール | アドレス) である CSV ファイルをアップロードしたとしても、別のユーザーが CSV ファイルの順序が列はそうです(メール | アドレス | 名前)。したがって、基本的に、CSV ヘッダーの名前がテーブル内のフィールド名の名前と一致する正しいデータベース フィールドに適切なデータをアップロードする必要がありますか?
以下のコード:
アップロード.php
<?php
include('config.php');
$file = "data.csv";
$separator = ",";
$length = 0;
$fields = array('title', 'firstName', 'secondName', 'emailAddress', 'houseNumber', 'mobileNumber', 'address1', 'address2', 'address3', 'address4', 'postcode');
$handle = fopen($file, "r");
$header = array_flip(fgetcsv($handle, $length, $separator));
$values = array();
$i = 1;
while(($csvData = fgetcsv($handle, $length, $separator)) !== false){
$values = array();
echo $i." - You have inserted another row of data into the database.<br>";
foreach ($fields as $field){
$values[] = $csvData[$header[$field]];
}
mysql_query("INSERT INTO csv (" . implode(',', array_keys($header)) . ") VALUES ('" . implode("','", $values) . "')");
$i++;
}
fclose($handle);
?>
私がこれを適切に説明していないかどうか尋ねてください。
前もって感謝します。