WPDB: When sanity checking query character sets, there's no need to check queries that don't return user data.

Merges [32374] to the 4.1 branch.

props pento.
see #32104.
Built from https://develop.svn.wordpress.org/branches/4.1@32402


git-svn-id: http://core.svn.wordpress.org/branches/4.1@32372 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Dominik Schilling 2015-05-06 20:02:23 +00:00
parent 26563868af
commit dc0748284b
1 changed files with 7 additions and 1 deletions

View File

@ -2502,7 +2502,7 @@ class wpdb {
// We don't need to check the collation for queries that don't read data. // We don't need to check the collation for queries that don't read data.
$query = ltrim( $query, "\r\n\t (" ); $query = ltrim( $query, "\r\n\t (" );
if ( preg_match( '/^(?:SHOW|DESCRIBE|DESC|EXPLAIN)\s/i', $query ) ) { if ( preg_match( '/^(?:SHOW|DESCRIBE|DESC|EXPLAIN|CREATE)\s/i', $query ) ) {
return true; return true;
} }
@ -2713,6 +2713,12 @@ class wpdb {
* @return string|WP_Error The converted query, or a {@see WP_Error} object if the conversion fails. * @return string|WP_Error The converted query, or a {@see WP_Error} object if the conversion fails.
*/ */
protected function strip_invalid_text_from_query( $query ) { protected function strip_invalid_text_from_query( $query ) {
// We don't need to check the collation for queries that don't read data.
$trimmed_query = ltrim( $query, "\r\n\t (" );
if ( preg_match( '/^(?:SHOW|DESCRIBE|DESC|EXPLAIN|CREATE)\s/i', $trimmed_query ) ) {
return $query;
}
$table = $this->get_table_from_query( $query ); $table = $this->get_table_from_query( $query );
if ( $table ) { if ( $table ) {
$charset = $this->get_table_charset( $table ); $charset = $this->get_table_charset( $table );