在php中上载CSV时如何包含逗号

在php中上载CSV时如何包含逗号,php,mysql,csv,Php,Mysql,Csv,我试图上传mysql的值,我似乎有一个逗号的问题,它认为这是每列的结束。或者我不知道如何解释它,但当我在一个文本字段中有多个逗号时,它会转到下一列,从而破坏格式 这是我的密码。我是新来的,所以我希望能有一个好的解释 //get the csv file $file = $_FILES[csv][tmp_name]; $handle = fopen($file,"r"); //loop through the csv file and insert into dat

我试图上传mysql的值,我似乎有一个逗号的问题,它认为这是每列的结束。或者我不知道如何解释它,但当我在一个文本字段中有多个逗号时,它会转到下一列,从而破坏格式

这是我的密码。我是新来的,所以我希望能有一个好的解释

//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 inventory (prod_brand, prod_name, prod_category, prod_price, prod_desc, prod_quantity) VALUES 
                ( 
                    '".addslashes($data[0])."', 
                    '".addslashes($data[1])."', 
                    '".addslashes($data[2])."',
                    '".addslashes($data[3])."',
                    '".addslashes($data[4])."',
                    '".addslashes($data[5])."'  
                ) 
            "); 
        } 
    } while ($data = fgetcsv($handle,1000,",","'")); 
试试这个:

//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 inventory (prod_brand, prod_name, prod_category, prod_price, prod_desc, prod_quantity) VALUES 
                ( 
                    '".addslashes($data[0]).",', 
                    '".addslashes($data[1]).",', 
                    '".addslashes($data[2]).",',
                    '".addslashes($data[3]).",',
                    '".addslashes($data[4]).",',
                    '".addslashes($data[5])."'  
                ) 
            "); 
        } 
    } while ($data = fgetcsv($handle,1000,",","'")); 

首先,我想建议您,如果表数据包含逗号(,),那么应该使用不同的分隔符(如制表符)导出CSV,并将列数据括在引号中

然后您可以在
fgetcsv
函数的原型中看到,您可以显式指定分隔符,它看起来像这样:

array fgetcsv ( resource $handle [, int $length = 0 [, string $delimiter = "," [, string $enclosure = '"' [, string $escape = "\\" ]]]] ) 
根据您的导出使用分隔符,然后使用与您使用的代码相同的代码

导出时,可以在命令提示符中使用以下命令来使用自定义分隔符

SELECT col1, col2
FROM table_name
INTO OUTFILE '/tmp/table_name.csv'
FIELDS TERMINATED BY '\t'
ENCLOSED BY '"'
LINES TERMINATED BY '\n' 
在phpmyadmin中,还可以指定自定义分隔符