Title: wpdb::_escape
Published: April 25, 2014
Last modified: February 24, 2026

---

# wpdb::_escape( string|array $data ): string|array

## In this article

 * [Parameters](https://developer.wordpress.org/reference/classes/wpdb/_escape/?output_format=md#parameters)
 * [Return](https://developer.wordpress.org/reference/classes/wpdb/_escape/?output_format=md#return)
 * [Source](https://developer.wordpress.org/reference/classes/wpdb/_escape/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/classes/wpdb/_escape/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/classes/wpdb/_escape/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/classes/wpdb/_escape/?output_format=md#wp--skip-link--target)

Escapes data. Works on arrays.

## 󠀁[Parameters](https://developer.wordpress.org/reference/classes/wpdb/_escape/?output_format=md#parameters)󠁿

 `$data`string|arrayrequired

Data to escape.

## 󠀁[Return](https://developer.wordpress.org/reference/classes/wpdb/_escape/?output_format=md#return)󠁿

 string|array Escaped data, in the same type as supplied.

## 󠀁[Source](https://developer.wordpress.org/reference/classes/wpdb/_escape/?output_format=md#source)󠁿

    ```php
    public function _escape( $data ) {
    	if ( is_array( $data ) ) {
    		foreach ( $data as $k => $v ) {
    			if ( is_array( $v ) ) {
    				$data[ $k ] = $this->_escape( $v );
    			} else {
    				$data[ $k ] = $this->_real_escape( $v );
    			}
    		}
    	} else {
    		$data = $this->_real_escape( $data );
    	}

    	return $data;
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/class-wpdb.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/6.9.4/src/wp-includes/class-wpdb.php#L1307)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/class-wpdb.php#L1307-L1321)

## 󠀁[Related](https://developer.wordpress.org/reference/classes/wpdb/_escape/?output_format=md#related)󠁿

| Uses | Description | 
| [wpdb::_escape()](https://developer.wordpress.org/reference/classes/wpdb/_escape/)`wp-includes/class-wpdb.php` |

Escapes data. Works on arrays.

  | 
| [wpdb::_real_escape()](https://developer.wordpress.org/reference/classes/wpdb/_real_escape/)`wp-includes/class-wpdb.php` |

Real escape using mysqli_real_escape_string().

  |

| Used by | Description | 
| [WP_Network_Query::get_network_ids()](https://developer.wordpress.org/reference/classes/wp_network_query/get_network_ids/)`wp-includes/class-wp-network-query.php` |

Used internally to get a list of network IDs matching the query vars.

  | 
| [WP_Site_Query::get_site_ids()](https://developer.wordpress.org/reference/classes/wp_site_query/get_site_ids/)`wp-includes/class-wp-site-query.php` |

Used internally to get a list of site IDs matching the query vars.

  | 
| [esc_sql()](https://developer.wordpress.org/reference/functions/esc_sql/)`wp-includes/formatting.php` |

Escapes data for use in a MySQL query.

  | 
| [wpdb::_escape()](https://developer.wordpress.org/reference/classes/wpdb/_escape/)`wp-includes/class-wpdb.php` |

Escapes data. Works on arrays.

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/classes/wpdb/_escape/?output_format=md#changelog)󠁿

| Version | Description | 
| [2.8.0](https://developer.wordpress.org/reference/since/2.8.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fclasses%2Fwpdb%2F_escape%2F)
before being able to contribute a note or feedback.