|
2 | 2 | /*!
|
3 | 3 | * Medoo database framework
|
4 | 4 | * https://medoo.in
|
5 |
| - * Version 1.5.5 |
| 5 | + * Version 1.5.6 |
6 | 6 | *
|
7 | 7 | * Copyright 2018, Angel Lai
|
8 | 8 | * Released under the MIT license
|
@@ -541,7 +541,7 @@ protected function dataImplode($data, &$map, $conjunctor)
|
541 | 541 |
|
542 | 542 | if (
|
543 | 543 | is_int($key) &&
|
544 |
| - preg_match('/([a-zA-Z0-9_\.]+)\[(?<operator>\>\=?|\<\=?|\!|\=)\]([a-zA-Z0-9_\.]+)/i', $value, $match) |
| 544 | + preg_match('/([a-zA-Z0-9_\.]+)\[(?<operator>\>\=?|\<\=?|\!?\=)\]([a-zA-Z0-9_\.]+)/i', $value, $match) |
545 | 545 | )
|
546 | 546 | {
|
547 | 547 | $stack[] = $this->columnQuote($match[ 1 ]) . ' ' . $match[ 'operator' ] . ' ' . $this->columnQuote($match[ 3 ]);
|
@@ -1003,7 +1003,7 @@ protected function selectContext($table, &$map, $join, &$columns = null, $where
|
1003 | 1003 | }
|
1004 | 1004 | else
|
1005 | 1005 | {
|
1006 |
| - if (empty($columns)) |
| 1006 | + if (empty($columns) || $this->isRaw($columns)) |
1007 | 1007 | {
|
1008 | 1008 | $columns = '*';
|
1009 | 1009 | $where = $join;
|
@@ -1082,43 +1082,51 @@ protected function dataMap($data, $columns, $column_map, &$stack)
|
1082 | 1082 |
|
1083 | 1083 | $column_key = $map[ 0 ];
|
1084 | 1084 |
|
| 1085 | + $result = $data[ $column_key ]; |
| 1086 | + |
1085 | 1087 | if (isset($map[ 1 ]))
|
1086 | 1088 | {
|
1087 | 1089 | if ($isRaw && in_array($map[ 1 ], ['Object', 'JSON']))
|
1088 | 1090 | {
|
1089 | 1091 | continue;
|
1090 | 1092 | }
|
1091 | 1093 |
|
| 1094 | + if (is_null($result)) |
| 1095 | + { |
| 1096 | + $stack[ $column_key ] = null; |
| 1097 | + continue; |
| 1098 | + } |
| 1099 | + |
1092 | 1100 | switch ($map[ 1 ])
|
1093 | 1101 | {
|
1094 | 1102 | case 'Number':
|
1095 |
| - $stack[ $column_key ] = (double) $data[ $column_key ]; |
| 1103 | + $stack[ $column_key ] = (double) $result; |
1096 | 1104 | break;
|
1097 | 1105 |
|
1098 | 1106 | case 'Int':
|
1099 |
| - $stack[ $column_key ] = (int) $data[ $column_key ]; |
| 1107 | + $stack[ $column_key ] = (int) $result; |
1100 | 1108 | break;
|
1101 | 1109 |
|
1102 | 1110 | case 'Bool':
|
1103 |
| - $stack[ $column_key ] = (bool) $data[ $column_key ]; |
| 1111 | + $stack[ $column_key ] = (bool) $result; |
1104 | 1112 | break;
|
1105 | 1113 |
|
1106 | 1114 | case 'Object':
|
1107 |
| - $stack[ $column_key ] = unserialize($data[ $column_key ]); |
| 1115 | + $stack[ $column_key ] = unserialize($result); |
1108 | 1116 | break;
|
1109 | 1117 |
|
1110 | 1118 | case 'JSON':
|
1111 |
| - $stack[ $column_key ] = json_decode($data[ $column_key ], true); |
| 1119 | + $stack[ $column_key ] = json_decode($result, true); |
1112 | 1120 | break;
|
1113 | 1121 |
|
1114 | 1122 | case 'String':
|
1115 |
| - $stack[ $column_key ] = $data[ $column_key ]; |
| 1123 | + $stack[ $column_key ] = $result; |
1116 | 1124 | break;
|
1117 | 1125 | }
|
1118 | 1126 | }
|
1119 | 1127 | else
|
1120 | 1128 | {
|
1121 |
| - $stack[ $column_key ] = $data[ $column_key ]; |
| 1129 | + $stack[ $column_key ] = $result; |
1122 | 1130 | }
|
1123 | 1131 | }
|
1124 | 1132 | else
|
|
0 commit comments