WordPress.org

Make WordPress Core

Ticket #19861: 19861.2.patch

File 19861.2.patch, 1.6 KB (added by SergeyBiryukov, 22 months ago)
  • wp-includes/wp-db.php

     
    901901                        $args = $args[0]; 
    902902                $query = str_replace( "'%s'", '%s', $query ); // in case someone mistakenly already singlequoted it 
    903903                $query = str_replace( '"%s"', '%s', $query ); // doublequote unquoting 
     904                $query = str_replace( '%f' , '%F', $query ); // Force floats to be locale unaware 
    904905                $query = preg_replace( '|(?<!%)%s|', "'%s'", $query ); // quote the strings, avoiding escaped strings like %%s 
    905906                array_walk( $args, array( &$this, 'escape_by_ref' ) ); 
    906907                return @vsprintf( $query, $args ); 
     
    12141215                                $form = $this->field_types[$field]; 
    12151216                        else 
    12161217                                $form = '%s'; 
     1218 
     1219                        if ( in_array( $form, array( '%f', '%F' ) ) ) 
     1220                                $data[ $field ] = str_replace( ',', '.', $data[ $field ] ); 
     1221 
    12171222                        $formatted_fields[] = $form; 
    12181223                } 
    12191224                $sql = "{$type} INTO `$table` (`" . implode( '`,`', $fields ) . "`) VALUES (" . implode( ",", $formatted_fields ) . ")"; 
     
    12541259                                $form = $this->field_types[$field]; 
    12551260                        else 
    12561261                                $form = '%s'; 
     1262 
     1263                        if ( in_array( $form, array( '%f', '%F' ) ) ) 
     1264                                $data[ $field ] = str_replace( ',', '.', $data[ $field ] ); 
     1265 
    12571266                        $bits[] = "`$field` = {$form}"; 
    12581267                } 
    12591268 
     
    12651274                                $form = $this->field_types[$field]; 
    12661275                        else 
    12671276                                $form = '%s'; 
     1277 
     1278                        if ( in_array( $form, array( '%f', '%F' ) ) ) 
     1279                                $where[ $field ] = str_replace( ',', '.', $where[ $field ] ); 
     1280 
    12681281                        $wheres[] = "`$field` = {$form}"; 
    12691282                } 
    12701283