从PHP更新SQL表
我有两个SQL表:从PHP更新SQL表,php,sql,Php,Sql,我有两个SQL表: Table LRU (ID_LRU, LRU) ==> (int Auto increment) Table article(ID_Article, Designiation, ID_LRU) ==> (varchar,varchar, int) 我有两个文件equipment.xsls和equipment.xsls,我从PHP 我使用了两个函数(几乎相似)来解析这两个文件: public function parseEquipement($filePath =
Table LRU (ID_LRU, LRU) ==> (int Auto increment)
Table article(ID_Article, Designiation, ID_LRU) ==> (varchar,varchar, int)
我有两个文件equipment.xsls
和equipment.xsls
,我从PHP
我使用了两个函数(几乎相似)来解析这两个文件:
public function parseEquipement($filePath = null) {
set_time_limit(0);
$listEquipement = [];
$count = 0;
$chunkSize = 1024;
$objReader = PHPExcel_IOFactory::createReader(PHPExcel_IOFactory::identify($filePath));
$spreadsheetInfo = $objReader->listWorksheetInfo($filePath);
$chunkFilter = new \Floose\Parse\ChunkReadFilter();
$objReader->setReadFilter($chunkFilter);
$objReader->setReadDataOnly(true);
$chunkFilter->setRows(0, 1);
$objPHPExcel = $objReader->load($filePath);
$totalRows = $spreadsheetInfo[0]['totalRows'];
for ($startRow = 1; $startRow <= $totalRows; $startRow += $chunkSize) {
$chunkFilter->setRows($startRow, $chunkSize);
$objPHPExcel = $objReader->load($filePath);
$sheetData = $objPHPExcel->getActiveSheet()->toArray(null, null, true, false);
$startIndex = ($startRow == 1) ? $startRow : $startRow - 1;
if($dataToAnalyse[0][0]==NULL){
break;
}
if (!empty($sheetData) && $startRow < $totalRows) {
$dataToAnalyse = array_slice($sheetData, $startIndex, $chunkSize);
for ($i = 0; $i < $chunkSize; $i++) {
if ($dataToAnalyse[$i]['0'] != NULL) {
$listEquipement[] = new Article($dataToAnalyse[$i]['0'], '', $dataToAnalyse[$i]['1']);
$count++;
}
}
}
$objPHPExcel->disconnectWorksheets();
unset($objPHPExcel, $sheetData);
}
//echo($totalRows);
//echo($count);
return $listEquipement;
}
public function parseEquipment($filePath = null) {
set_time_limit(0);
$listEquipement = [];
$count = 0;
$chunkSize = 1024;
$objReader = PHPExcel_IOFactory::createReader(PHPExcel_IOFactory::identify($filePath));
$spreadsheetInfo = $objReader->listWorksheetInfo($filePath);
$chunkFilter = new \Floose\Parse\ChunkReadFilter();
$objReader->setReadFilter($chunkFilter);
$objReader->setReadDataOnly(true);
$chunkFilter->setRows(0, 1);
$objPHPExcel = $objReader->load($filePath);
$totalRows = $spreadsheetInfo[0]['totalRows'];
for ($startRow = 1; $startRow <= $totalRows; $startRow += $chunkSize) {
$chunkFilter->setRows($startRow, $chunkSize);
$objPHPExcel = $objReader->load($filePath);
$sheetData = $objPHPExcel->getActiveSheet()->toArray(null, null, true, false);
$startIndex = ($startRow == 1) ? $startRow : $startRow - 1;
if($dataToAnalyse[0][0]==NULL){
break;
}
if (!empty($sheetData) && $startRow < $totalRows) {
$dataToAnalyse = array_slice($sheetData, $startIndex, $chunkSize);
for ($i = 0; $i < $chunkSize; $i++) {
if ($dataToAnalyse[$i]['0'] != NULL) {
$listEquipement[] = new Article($dataToAnalyse[$i]['2'], $dataToAnalyse[$i]['3'], $dataToAnalyse[$i]['5']);
$count++;
}
}
}
$objPHPExcel->disconnectWorksheets();
unset($objPHPExcel, $sheetData);
}
return $listEquipement;
}
echo($count)//此处显示0
返回$count;
}
我试图在函数saveAll
中显示一个变量count
,它返回0。但是,我不明白为什么对另一个表和变量count
进行同样的操作,它只会为这个表LRU
在Controller中,我只是执行了导入文件的功能:
$app->get('/admin/update/article', function() use ($app) {
$parse = new ....\Parse\Parse();
$update = new ....\DAO\ArticleDAO();
$filePathEquipement = __DIR__ . "/../../DATA/UpdateFiles/Equipement.xlsx";
$filePathEquipment = __DIR__ . "/../../DATA/UpdateFiles/equipment.xlsx";
$equipement = $parse->parseEquipement($filePathEquipement);
$equipment = $parse->parseEquipment($filePathEquipment);
$countEquipement = $update->saveAll($equipement);
$countEquipment = $update->saveAll($equipment);
$stat = stat($filePathEquipement);
$dateImport = date(d . '-' . m . '-' . Y, $stat['mtime']);
$date = new DateUpdate(null, "Equipement", $dateImport, getdate()['mday'].'-'.getdate()['mon'].'-'.getdate()['year']);
$dateDAO = new DateUpdateDAO();
$dateDAO->save($date);
$stat = stat($filePathEquipment);
$dateImport = date(d . '-' . m . '-' . Y, $stat['mtime']);
$date = new DateUpdate(null, "equipment", $dateImport, getdate()['mday'].'-'.getdate()['mon'].'-'.getdate()['year']);
$dateDAO = new DateUpdateDAO();
$dateDAO->save($date);
$result = '<div class="alert alert-success alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4> <i class="icon fa fa-check"></i> "LRU" update finished successfully!</h4> ' . ($countEquipement + $countEquipment) . ' Article(s) has been saved/modified.<br/>
' . $countEquipement . ' --> Equipement.xlsx<br/>
' . $countEquipment . ' --> equipement.xlsx
</div>';
return $result;
});
$app->get('/admin/update/article',function()使用($app){
$parse=new….\parse\parse();
$update=new..\DAO\ArticleDAO();
$FilePathEquipment=\uuuuu DIR\uuuu.“/../DATA/UpdateFiles/equipment.xlsx”;
$FilePathDevice=\uuuuu DIR\uuuu.“/../DATA/UpdateFiles/device.xlsx”;
$Equipment=$parse->ParseEquipment($FilePathEquipment);
$equipment=$parse->parseEquipment($filePathEquipment);
$CountEquipment=$update->saveAll($Equipment);
$countEquipment=$update->saveAll($equipment);
$stat=stat($FilePathEquipment);
$dateImport=date(d.'-'.m.'-'.Y,$stat['mtime']);
$date=new DateUpdate(null,“设备”,$dateImport,getdate()['mday'].-'.getdate()['mon'].-'.getdate()['year']);
$dateDAO=new DateUpdateDAO();
$dateDAO->save($date);
$stat=stat($filePathEquipment);
$dateImport=date(d.'-'.m.'-'.Y,$stat['mtime']);
$date=new DateUpdate(null,“设备”,$dateImport,getdate()['mday'].-'.getdate()['mon'].-'.getdate()['year']);
$dateDAO=new DateUpdateDAO();
$dateDAO->save($date);
$result='1
&时代;
“LRU”更新已成功完成!($countEquipment+$countEquipment)。'文章已保存/修改。
“.$CountEquipment.”-->Equipment.xlsx
“.$countEquipment.”-->Equipment.xlsx
';
返回$result;
});
问题是所有其他表都进行了更新,但有一个表是LRU
,但是代码几乎与文件名相似。
请不要要求我为我工作,只要看一眼我的代码,并告诉我哪里是我的严重错误,以纠正它。根据我的小经验,我认为这是请求中的错误
谢谢。没有人会读这堆代码。请阅读并修改相应的问题。好的,谢谢,我现在将更改它。在写下问题后,网站不允许我访问帖子:(你只能每90分钟发布一次。没有人会阅读这组代码。请阅读并相应修改问题。好的,谢谢你,我现在将更改它。在写下问题后,网站不允许我发布:(你只能每90分钟发布一次。)。
$app->get('/admin/update/article', function() use ($app) {
$parse = new ....\Parse\Parse();
$update = new ....\DAO\ArticleDAO();
$filePathEquipement = __DIR__ . "/../../DATA/UpdateFiles/Equipement.xlsx";
$filePathEquipment = __DIR__ . "/../../DATA/UpdateFiles/equipment.xlsx";
$equipement = $parse->parseEquipement($filePathEquipement);
$equipment = $parse->parseEquipment($filePathEquipment);
$countEquipement = $update->saveAll($equipement);
$countEquipment = $update->saveAll($equipment);
$stat = stat($filePathEquipement);
$dateImport = date(d . '-' . m . '-' . Y, $stat['mtime']);
$date = new DateUpdate(null, "Equipement", $dateImport, getdate()['mday'].'-'.getdate()['mon'].'-'.getdate()['year']);
$dateDAO = new DateUpdateDAO();
$dateDAO->save($date);
$stat = stat($filePathEquipment);
$dateImport = date(d . '-' . m . '-' . Y, $stat['mtime']);
$date = new DateUpdate(null, "equipment", $dateImport, getdate()['mday'].'-'.getdate()['mon'].'-'.getdate()['year']);
$dateDAO = new DateUpdateDAO();
$dateDAO->save($date);
$result = '<div class="alert alert-success alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4> <i class="icon fa fa-check"></i> "LRU" update finished successfully!</h4> ' . ($countEquipement + $countEquipment) . ' Article(s) has been saved/modified.<br/>
' . $countEquipement . ' --> Equipement.xlsx<br/>
' . $countEquipment . ' --> equipement.xlsx
</div>';
return $result;
});