소스 검색

Fixing where conditions

Julio Montoya 13 년 전
부모
커밋
465f4ff433
2개의 변경된 파일11개의 추가작업 그리고 10개의 파일을 삭제
  1. 6 5
      main/inc/lib/database.lib.php
  2. 5 5
      main/inc/lib/database.mysqli.lib.php

+ 6 - 5
main/inc/lib/database.lib.php

@@ -1189,7 +1189,7 @@ class Database {
                 continue;
             }
             $type_condition = strtolower($type_condition);
-            switch($type_condition) {
+            switch ($type_condition) {
                 case 'where':                                       
                     foreach ($condition_data as $condition => $value_array) {                        
                         if (is_array($value_array)) {
@@ -1203,11 +1203,12 @@ class Database {
                             $clean_values = $value_array;                            
                         }
                        
-                        if (!empty($condition) && $clean_values != '') {                            
+                        if (!empty($condition) && $clean_values != '') {                                                        
                             $condition = str_replace('%',"'@percentage@'", $condition); //replace "%"
-                            $condition = str_replace("'?'","%s", $condition); //we treat everything as string                            
-                            //just in case
-                            $condition = str_replace("?","%s", $condition); //we treat everything as string
+                            $condition = str_replace("'?'","%s", $condition);
+                            $condition = str_replace("?","%s", $condition);
+                            //Treat conditons as string
+                            $condition = str_replace("%s","'%s'", $condition);
                             $condition = vsprintf($condition, $clean_values);                            
                             $condition = str_replace('@percentage@','%', $condition); //replace "%"
                             $where_return .= $condition;

+ 5 - 5
main/inc/lib/database.mysqli.lib.php

@@ -1140,14 +1140,14 @@ class Database {
                         }
                         if (!empty($condition) && $clean_values != '') {
                             $condition = str_replace('%',"'@percentage@'", $condition); //replace "%"
-                            $condition = str_replace("'?'","%s", $condition); //we treat everything as string                            
-                            //just in case
-                            $condition = str_replace("?","%s", $condition); //we treat everything as string
+                            $condition = str_replace("'?'","%s", $condition);
+                            $condition = str_replace("?","%s", $condition);
+                            //Treat conditons as string
+                            $condition = str_replace("%s","'%s'", $condition);
                             $condition = vsprintf($condition, $clean_values);                            
                             $condition = str_replace('@percentage@','%', $condition); //replace "%"
                             $where_return .= $condition;
-                        }
-                    }
+                        }                    }
                     if (!empty($where_return)) {
                         $return_value = " WHERE $where_return" ;
                     }