Fixed bug #7015: t3lib_DB displays wrong SQL in error case
authorChristian Kuhn <lolli@schwarzbu.ch>
Fri, 28 May 2010 09:03:25 +0000 (09:03 +0000)
committerChristian Kuhn <lolli@schwarzbu.ch>
Fri, 28 May 2010 09:03:25 +0000 (09:03 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@7708 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
t3lib/class.t3lib_db.php

index 7cdf0d1..e451030 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2010-05-28  Christian Kuhn  <lolli@schwarzbu.ch>
+
+       * Fixed bug #7015: t3lib_DB displays wrong SQL in error case (Thanks to Steffen Ritter)
+
 2010-05-28  Benjamin Mack  <benni@typo3.org>
 
        * Fixed bug #14342: t3lib_compressor does not rewrite "data:" URIs (Thanks to Steffen Gebert)
index 904828a..64b7f62 100644 (file)
@@ -486,33 +486,31 @@ class t3lib_DB {
         * @param       string          See exec_UPDATEquery()
         * @param       array           See exec_UPDATEquery()
         * @param       array           See fullQuoteArray()
-        * @return      string          Full SQL query for UPDATE (unless $fields_values does not contain any elements in which case it will be false)
+        * @return      string          Full SQL query for UPDATE
         */
        function UPDATEquery($table, $where, $fields_values, $no_quote_fields = FALSE) {
-
                        // Table and fieldnames should be "SQL-injection-safe" when supplied to this
                        // function (contrary to values in the arrays which may be insecure).
                if (is_string($where)) {
+                       $fields = array();
                        if (is_array($fields_values) && count($fields_values)) {
 
                                        // quote and escape values
                                $nArr = $this->fullQuoteArray($fields_values, $table, $no_quote_fields);
 
-                               $fields = array();
                                foreach ($nArr as $k => $v) {
                                        $fields[] = $k.'='.$v;
                                }
+                       }
 
-                                       // Build query:
-                               $query = 'UPDATE ' . $table . ' SET ' . implode(',', $fields) .
-                                       (strlen($where) > 0 ? ' WHERE ' . $where : '');
+                               // Build query:
+                       $query = 'UPDATE ' . $table . ' SET ' . implode(',', $fields) .
+                               (strlen($where) > 0 ? ' WHERE ' . $where : '');
 
-                                       // Return query:
-                               if ($this->debugOutput || $this->store_lastBuiltQuery) {
-                                       $this->debug_lastBuiltQuery = $query;
-                               }
-                               return $query;
+                       if ($this->debugOutput || $this->store_lastBuiltQuery) {
+                               $this->debug_lastBuiltQuery = $query;
                        }
+                       return $query;
                } else {
                        throw new InvalidArgumentException(
                                'TYPO3 Fatal Error: "Where" clause argument for UPDATE query was not a string in $this->UPDATEquery() !',