From 68cf2f5db7ca4ce471a0af676db31a977c555d91 Mon Sep 17 00:00:00 2001 From: Fred Condo Date: Mon, 29 Apr 2013 17:25:16 -0700 Subject: [PATCH] Use the correct variable as the key into $record It was using $fieldName, which is the CSV field name, not the database field name. This prevents duplicate detection from working. It now properly uses $SQL_fieldName --- dev/CsvBulkLoader.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dev/CsvBulkLoader.php b/dev/CsvBulkLoader.php index b984dc21c..ebf28566d 100644 --- a/dev/CsvBulkLoader.php +++ b/dev/CsvBulkLoader.php @@ -151,12 +151,12 @@ class CsvBulkLoader extends BulkLoader { foreach($this->duplicateChecks as $fieldName => $duplicateCheck) { if(is_string($duplicateCheck)) { $SQL_fieldName = Convert::raw2sql($duplicateCheck); - if(!isset($record[$fieldName])) { + if(!isset($record[$SQL_fieldName])) { return false; //user_error("CsvBulkLoader:processRecord: Couldn't find duplicate identifier '{$fieldName}' //in columns", E_USER_ERROR); } - $SQL_fieldValue = Convert::raw2sql($record[$fieldName]); + $SQL_fieldValue = Convert::raw2sql($record[$SQL_fieldName]); $existingRecord = DataObject::get_one($this->objectClass, "\"$SQL_fieldName\" = '{$SQL_fieldValue}'"); if($existingRecord) return $existingRecord; } elseif(is_array($duplicateCheck) && isset($duplicateCheck['callback'])) {