我已经使用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));}
}