unset($updateFields['sku']); $updateExpr = ''; foreach ($updateFields as $field => $value) { $updateExpr .= sprintf('%s = IF(VALUES(%s)<>"", VALUES(%s), %s),', $field, $field, $field, $field); } $sqlTemplate = 'INSERT INTO sku (' . implode(',', array_keys($queryFields)) . ') VALUES %values% ON DUPLICATE KEY UPDATE %update%'; $sqlTemplate = str_replace('%update%', rtrim($updateExpr, ','), $sqlTemplate); while (true) { $rowData = fgetcsv($handle); if (false === $rowData || $rowsProcessed >= MAX_QUERY_ROWS) { if ($dataString) { $sql = str_replace('%values%', rtrim($dataString, ','), $sqlTemplate); if ($debugMode) { sql($sql); } $deployer->dbQuery($sql, 'Error running query!'); $dataString = ''; $rowsProcessedTotal += $rowsProcessed; $rowsInsertedTotal += $rowsProcessed; $rowsProcessed = 0; } if (false === $rowData) { $deployer->logMessage("Importing {$fileName} completed, total rows processed = {$rowsTotal}, total rows imported = {$rowsProcessedTotal}"); break; } } $rowsTotal++; $data = array(); $hasData = false; foreach ($queryFields as $sqlName => $columnPosition) { if (!isset($rowData[$columnPosition])) {
} $sqlUpdateTemplate = 'INSERT INTO `oem_cost`(%COLUMN_NAMES%) VALUES %VALUES% ON DUPLICATE KEY UPDATE %COLUMN_ASSIGNMENT%'; $sqlUpdateTemplate = str_replace('%COLUMN_NAMES%', implode(', ', array_keys($colPositions)), $sqlUpdateTemplate); $sqlUpdateTemplate = str_replace('%COLUMN_ASSIGNMENT%', implode(', ', $colAssignment), $sqlUpdateTemplate); $deleteRecords = array(); while (true) { $rowData = fgetcsv($handle); if (false === $rowData || $rowsProcessed >= MAX_QUERY_ROWS) { if ($dataString) { $sql = str_replace('%VALUES%', rtrim($dataString, ','), $sqlUpdateTemplate); // 'INSERT INTO `oem_cost`('.implode(',', $columns).') VALUES ' . rtrim($dataString, ',') // . ' ON DUPLICATE KEY UPDATE cost=VALUES(cost), part_name=VALUES(part_name)'; if ($debugSQLDump) { sql($sql); } $result = $debugImitateQuery || $deployer->dbQuery($sql, 'Error running query!'); if (!$result) { $deployer->logMessage($result); sql($sql); break; } $dataString = ''; $rowsProcessedTotal += $rowsProcessed; $rowsInsertedTotal += $rowsProcessed; $rowsProcessed = 0; } if (false === $rowData) { $deployer->logMessage("\nImporting {$fileName} completed, total rows processed = {$rowsTotal}, total rows imported = {$rowsProcessedTotal}"); break; } }
$rowsProcessed = 0; $rowsProcessedTotal = 0; $dataString = ''; $fileName = $importDir . $file; $deployer->logMessage("\nProcessing {$fileName}"); if (false !== ($handle = fopen($fileName, "rb"))) { $columns = fgetcsv($handle); while (true) { $rowData = fgetcsv($handle); if (false === $rowData || $rowsProcessed >= MAX_QUERY_ROWS) { if ($dataString) { $sql = 'INSERT INTO `oem_cost`(' . implode(',', $columns) . ') VALUES ' . rtrim($dataString, ',') . ' ON DUPLICATE KEY UPDATE cost=VALUES(cost), part_name=VALUES(part_name)'; if ($sqlDump) { sql($sql); } if (!($result = $deployer->dbQuery($sql, 'Error running query!'))) { $deployer->logMessage($result); sql($sql); break; // continue; // fclose($handle); // die; } $dataString = ''; $rowsProcessedTotal += $rowsProcessed; $rowsInsertedTotal += $rowsProcessed; $rowsProcessed = 0; } // $deployer->logMessage("File $file, total rows processed = $rowsTotal, total rows imported = $rowsProcessedTotal"); if (false === $rowData) { $deployer->logMessage("\nImporting {$fileName} completed, total rows processed = {$rowsTotal}, total rows imported = {$rowsProcessedTotal}");