@@ -194,7 +194,7 @@ private function formatValue($value, string $mode = null): string
194
194
$ value = iterator_to_array ($ value );
195
195
}
196
196
197
- if (is_array ($ value )) {
197
+ if ($ mode && is_array ($ value )) {
198
198
$ vx = $ kx = [];
199
199
if ($ mode === self ::MODE_AUTO ) {
200
200
$ mode = $ this ->arrayMode ;
@@ -229,7 +229,7 @@ private function formatValue($value, string $mode = null): string
229
229
} elseif (!$ mode || $ mode === self ::MODE_SET ) {
230
230
foreach ($ value as $ k => $ v ) {
231
231
if (is_int ($ k )) { // value, value, ... OR (1, 2), (3, 4)
232
- $ vx [] = is_array ($ v ) ? '( ' . $ this ->formatValue ($ v ) . ') ' : $ this ->formatValue ($ v );
232
+ $ vx [] = is_array ($ v ) ? '( ' . $ this ->formatValue ($ v, self :: MODE_LIST ) . ') ' : $ this ->formatValue ($ v );
233
233
} elseif (substr ($ k , -1 ) === '= ' ) { // key+=value, key-=value, ...
234
234
$ k2 = $ this ->delimite (substr ($ k , 0 , -2 ));
235
235
$ vx [] = $ k2 . '= ' . $ k2 . ' ' . substr ($ k , -2 , 1 ) . ' ' . $ this ->formatValue ($ v );
@@ -255,7 +255,7 @@ private function formatValue($value, string $mode = null): string
255
255
$ k = $ this ->delimite ($ k );
256
256
if (is_array ($ v )) {
257
257
if ($ v ) {
258
- $ vx [] = $ k . ' ' . ($ operator ? $ operator . ' ' : '' ) . 'IN ( ' . $ this ->formatValue (array_values ($ v )) . ') ' ;
258
+ $ vx [] = $ k . ' ' . ($ operator ? $ operator . ' ' : '' ) . 'IN ( ' . $ this ->formatValue (array_values ($ v ), self :: MODE_LIST ) . ') ' ;
259
259
} elseif ($ operator === 'NOT ' ) {
260
260
} else {
261
261
$ vx [] = '1=0 ' ;
0 commit comments