WordPress.org

Make WordPress Core

Ticket #50789: 50789.diff

File 50789.diff, 615 bytes (added by johnjamesjacoby, 6 months ago)

First pass diff at targeting information_schema.* table, TABLE_NAME column queries

  • src/wp-includes/wp-db.php

     
    33093309                // Strip everything between parentheses except nested selects.
    33103310                $query = preg_replace( '/\((?!\s*select)[^(]*?\)/is', '()', $query );
    33113311
     3312                // SELECT FROM information_schema.* WHERE TABLE_NAME = 'wp_12345_foo'
     3313                if ( preg_match(
     3314                        '/^\s*'
     3315                                . 'SELECT.*?\s+FROM'
     3316                                . '\s+`?information_schema`?\.'
     3317                                . '.*\s+TABLE_NAME\s*=\s*["\']([\w-]+)["\']/is',
     3318                        $query,
     3319                        $maybe
     3320                ) ) {
     3321                        return $maybe[1];
     3322                }
     3323
    33123324                // Quickly match most common queries.
    33133325                if ( preg_match(
    33143326                        '/^\s*(?:'