当PHP上传excel文件到MYSQL重复列名错误时

时间:2014-07-20 10:40:28

标签: php mysql excel

我已经使用2种方法使用PHP将文件上传到我的MYSQL数据库,我只使用了CSV,现在将其更改为上传.xlxs文件。当我尝试上传文件并且有2个匹配的条目表示重复的列名称和该条目的值时,会发生什么。

例如:

id |打开|靠近

1 | 23 | 23

(我不知道如何将其格式化为漂亮的表格)

这会抛出重复列名称的错误,因此不会INSERT但是如果我将open和close列更改为唯一它运行正常。并且表中的这些特定字段可以具有唯一值。

set_include_path(get_include_path() . PATH_SEPARATOR . 'Classes/');
    include 'PHPExcel/IOFactory.php';

    // This is the file path to be uploaded.
    $inputFileName = 'discussdesk.xlsx'; 

    try {
        $objPHPExcel = PHPExcel_IOFactory::load($inputFileName);
    } catch(Exception $e) {
        die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage());
    }

$allDataInSheet = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
    $arrayCount = count($allDataInSheet);  // Here get total count of row in that Excel sheet


for($i=$many_many;$i<=$arrayCount;$i++){
                $barcode = mysql_real_escape_string(trim($allDataInSheet[$i]["B"]));
                $open = mysql_real_escape_string(trim($allDataInSheet[$i]["E"]));
                $close = mysql_real_escape_string(trim($allDataInSheet[$i]["F"]));
                $date = mysql_real_escape_string(trim($allDataInSheet[$i]["G"]));


                $insertTable= mysql_query("INSERT INTO tbl_stock (_date, _barcode, _open, _close) SELECT * FROM (SELECT '".$date."', '".$barcode."', '".$open."', '".$close."') AS tmp WHERE NOT EXISTS(SELECT _barcode FROM tbl_stock WHERE _barcode = '".$barcode."' AND _date = '".$date."')");

                if(!$insertTable){die(mysql_error($link));}
}

0 个答案:

没有答案