3

私は過去数日間この問題に直面していて、今やらなければならないのでイライラしています。

CSVファイルの列名をデータベーステーブルヘッダーで更新する必要があります。データベーステーブルのフィールドがCSVファイルと異なります。ここで問題となるのは、最初にデータベーステーブルヘッダーを使用してCSVファイルの列名を更新し、次にフィールドマッピングを使用してそのデータをデータベースにインポートすることです。

どうすれば解決できるかわからないので、助けてください。

これは私のphpコードです:

$file      = $_POST['fileName'];
$filename  = "../files/" . $file;
$list      = $_POST['str'];
$array_imp = implode(',', $list);
$array_exp = explode(',', $array_imp);
$fp        = fopen("../files/" . $file, "w");
$num       = count($fp);

for ($c = 0; $c < $num; $c++) {
    if ($fp[c] !== '') {
        fputcsv($fp, $array_exp);
    }
}

fclose($fp);


require_once("../csv/DataSource.php");
$path = "../files/test_mysql.csv";
$dbtable = $ext[0];

$csv = new File_CSV_DataSource;
        $csv->load($path);
        $csvData = $csv->connect();
        $res=''; 
        foreach($csvData  as $key)
        {  print_r($key[1]);
            $myKey ='';
            $myVal='';
            foreach($key as $k=>$v)
            { 
                $myKey .=$k.',';
                $myVal .="'".$v."',";

            }
            $myKey = substr($myKey, 0, -1);
            $myVal = substr($myVal, 0, -1); 
            $query="insert into tablename($myKey)values($myVal)";
            $res=  mysql_query($query);
4

2 に答える 2

0

テーブルヘッダーを挿入することに成功している場合は、その途中です。ヘッダーの後に次のようなデータを追加する必要があるように思えます。

$data = $headers;

if($fp[c]!=='')
{ $data .= fputcsv($fp, $array_exp); }

ドット「。」に注意してください。ifステートメントのequals'='の前。$fp[c]これにより、ヘッダーの後に 空白の値は追加されません。

于 2012-12-14T12:27:00.653 に答える