@@ -625,23 +625,25 @@ static function SELECT($table, $columns, $where, $join, $limit)
625625 if (!isset ($ columns [0 ])) {
626626 $ sql .= '* ' ;
627627 } else {
628- $ len = count ($ columns );
629628 $ req = 0 ;
630629 $ into = '' ;
631630 if ($ columns [0 ] === 'DISTINCT ' ) {
632631 $ req = 1 ;
633632 $ sql .= 'DISTINCT ' ;
633+ array_splice ($ columns ,0 ,1 );
634634 } else if (substr ($ columns [0 ], 0 , 11 ) === 'INSERT INTO ' ) {
635635 $ req = 1 ;
636636 $ sql = $ columns [0 ] . ' ' . $ sql ;
637+ array_splice ($ columns ,0 ,1 );
637638 } else if (substr ($ columns [0 ], 0 , 4 ) === 'INTO ' ) {
638639 $ req = 1 ;
639640 $ into = ' ' . $ columns [0 ] . ' ' ;
641+ array_splice ($ columns ,0 ,1 );
640642 }
641- if ($ len > $ req ) {
642- for ($ i = $ req ; isset ( $ columns [ $ i ]); $ i ++ ) {
643- $ b = self ::getType ($ columns [ $ i ] );
644- $ t = $ b ? self ::getType ($ columns [ $ i ] ) : false ;
643+ if (isset ( $ columns [ 0 ]) ) {
644+ foreach ($ columns as $ i => & $ val ) {
645+ $ b = self ::getType ($ val );
646+ $ t = $ b ? self ::getType ($ val ) : false ;
645647 if (!$ t && $ b ) {
646648 if (!($ b === 'int ' || $ b === 'string ' || $ b === 'json ' || $ b === 'obj ' || $ b === 'bool ' )) {
647649 $ t = $ b ;
@@ -651,15 +653,15 @@ static function SELECT($table, $columns, $where, $join, $limit)
651653 if ($ b ) {
652654 if (!$ outTypes ) $ outTypes = array ();
653655 if ($ t ) {
654- $ outTypes [$ t ] = $ b ;
656+ $ outTypes [$ t ] = $ b ;
655657 } else {
656- $ outTypes [$ columns [ $ i ] ] = $ b ;
658+ $ outTypes [$ val ] = $ b ;
657659 }
658660 }
659- if ($ i > $ req ) {
661+ if ($ i != 0 ) {
660662 $ sql .= ', ' ;
661663 }
662- $ sql .= self ::quote ($ columns [ $ i ] );
664+ $ sql .= self ::quote ($ val );
663665 if ($ t )
664666 $ sql .= ' AS ` ' . $ t . '` ' ;
665667 }
0 commit comments