WordPress.org

Make WordPress Core

Ticket #19861: 19861.2.patch

File 19861.2.patch, 1.6 KB (added by SergeyBiryukov, 8 years 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