通过php从我的sql中的csv文件导入数据

时间:2012-12-13 09:25:32

标签: php mysql csv import

我正在尝试从csv文件导入数据,该文件具有以下格式:

173,antony,xds1079,Antony,Pran,Pran Antony,,452522252,,,,antpran@hotmail.com,,,,,Yes,Yes,No,pricelist.xls
18,john,smithison22,John,Smith,Smith Jon,,545455726,,,,johnsmith01@in.com,,,,,Yes,Yes,No,pricelist.xls
22,nikolas,Brand44eBerg,Nikolas,Brandeberg,Brandeberg and sons ,,454554552,,,,brand88@freemail.co.uk,,,,,Yes,Yes,No,pricelist.xls

将其插入mySQL时,第一行中的最后一个字段包含 pricelist.xls18。但是18应该放在下一行,因为它是id字段。

这是我使用的php代码:

if ($_FILES[csv][size] > 0) {

//get the csv file
$file = $_FILES[csv][tmp_name];
$handle = fopen($file,"r");


//loop through the csv file and insert into database
do {
    if ($data[0]) {
        mysql_query("INSERT INTO customers_tmp (id,username, password, firstname, lastname, companyname, companyposition, phone1, phone2, mobilephone, fax, email, address, afm, doy, website, active, wholesaling , wholesaling_bulk , pricecatalog) VALUES
            (
                '".addslashes($data[0])."',
                '".addslashes($data[1])."',
                '".addslashes($data[2])."',
                '".addslashes($data[3])."',
                '".addslashes($data[4])."',
                '".addslashes($data[5])."',
                '".addslashes($data[6])."',
                '".addslashes($data[7])."',
                '".addslashes($data[8])."',
                '".addslashes($data[9])."',
                '".addslashes($data[10])."',
                '".addslashes($data[11])."',
                '".addslashes($data[12])."',
                '".addslashes($data[13])."',
                '".addslashes($data[14])."',
                '".addslashes($data[15])."',
                '".addslashes($data[16])."',
                '".addslashes($data[17])."',
                '".addslashes($data[18])."',
                '".addslashes($data[19])."'                                                                                                                                                                                                                                      
            )
        ");
    }
} while ($data = fgetcsv($handle,1000,",","'"));
//

//redirect
header('Location: import.php?success=1'); die;

}

有谁知道我应该做什么,所以id可以进入下一行而不是最后一个字段?

1 个答案:

答案 0 :(得分:0)

如果其他人可能需要此解决方案,以下是我解决问题的方法:

ini_set('auto_detect_line_endings', true);

的问候,卓然