From d2454d4f880e0c1bf9b495b972c5f0cad301c6c7 Mon Sep 17 00:00:00 2001 From: Cameron Ball Date: Thu, 11 Dec 2014 15:28:07 +0800 Subject: [PATCH] Fix more bugs in datamapper. --- DataAccess/DataMapper/DataMapper.php | 10 +++++----- DataAccess/DataMapper/Helpers/AbstractPopulationHelper.php | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/DataAccess/DataMapper/DataMapper.php b/DataAccess/DataMapper/DataMapper.php index 1200397..384627d 100644 --- a/DataAccess/DataMapper/DataMapper.php +++ b/DataAccess/DataMapper/DataMapper.php @@ -57,7 +57,7 @@ class DataMapper implements IDataMapper $queries = AbstractPopulationHelper::generateUpdateSaveQuery($this->_maps, $entity, $entity->getId(), $this->_db); $mergeMap = array(); $flattened = array(); - + foreach($queries as $index => $query) { $this_table = $query['table']; @@ -110,12 +110,12 @@ class DataMapper implements IDataMapper } } } - + if(!array_key_exists($index, $mergeMap)) { $prepared = isset($query['prepared']) ? $query['prepared'] : null; $id = isset($query['id']) ? $query['id'] : null; - $flattened[] = array( + $flattened[$index] = array( 'columns' => $this_columns, 'table' => $this_table, 'prepared' => $prepared, @@ -126,7 +126,7 @@ class DataMapper implements IDataMapper $queries = array(); - foreach($flattened as $info) + foreach($flattened as $index => $info) { if(isset($info['id'])) { @@ -140,7 +140,7 @@ class DataMapper implements IDataMapper implode(', ', $info['columns'])); } - $queries[] = $query; + $queries[$index] = $query; } // if($queries['TYPE'] == AbstractPopulationHelper::QUERY_TYPE_CREATE) diff --git a/DataAccess/DataMapper/Helpers/AbstractPopulationHelper.php b/DataAccess/DataMapper/Helpers/AbstractPopulationHelper.php index eab5154..c7bc679 100644 --- a/DataAccess/DataMapper/Helpers/AbstractPopulationHelper.php +++ b/DataAccess/DataMapper/Helpers/AbstractPopulationHelper.php @@ -112,7 +112,7 @@ class AbstractPopulationHelper ); } else { //TODO: logic to detemine what the value is? i.e., string, int etc? - $queryColumnNamesAndValues[$columnName] = sprintf('"%s"', $columnValue); + $queryColumnNamesAndValues[$columnName] = $db->quote($columnValue); } } @@ -198,7 +198,7 @@ class AbstractPopulationHelper { $property = ($property) ? '1' : '0'; } - $queryColumnNamesAndValues[$mapsHelper->getColumnName()] = sprintf('%u', $property); + $queryColumnNamesAndValues[$mapsHelper->getColumnName()] = $property; } break; case 'DataAccess\DataMapper\Helpers\VarcharMapsHelper': @@ -208,7 +208,7 @@ class AbstractPopulationHelper $mapsHelper->getColumnName(), $property); } else { - $queryColumnNamesAndValues[$mapsHelper->getColumnName()] = sprintf('"%s"', $property); + $queryColumnNamesAndValues[$mapsHelper->getColumnName()] = $db->quote($property); } break; @@ -371,7 +371,7 @@ class AbstractPopulationHelper foreach($columns as $columnName => $columnValue) { - $query .= sprintf('%s="%s" AND ', $columnName, $columnValue); + $query .= sprintf('%s="%s" AND ', $columnName, str_replace('"', '\"', $columnValue)); } $query = substr($query, 0, -4); -- 2.11.0