Make WordPress Core


Ignore:
Timestamp:
09/10/2021 04:35:39 PM (3 years ago)
Author:
hellofromTonya
Message:

Code Modernization: Fix "passing null to non-nullable" deprecation in wpdb::_real_escape().

The PHP native mysqli_real_escape_string() function expects to be passed a string as the second parameter and this is not a nullable parameter.

Passing null to it will result in a mysqli_real_escape_string(): Passing null to parameter #2 ($string) of type string is deprecated notice on PHP 8.1.

Previously, an input type check was put in place to prevent fatal errors on PHP 8.0 when an array, object or resource was passed. Changeset [48980].

A null value was explicitly excluded from that check, even though a null value being passed would only ever result in an empty string anyway.

This commit changes the previous input type check to also bow out early for null values and to automatically return an empty string for those.

Refs:

Follow-up to [48980].

Props jrf, hellofromTonya.
See #53635.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/wp-db.php

    r51582 r51799  
    11591159     */
    11601160    function _real_escape( $string ) {
    1161         if ( ! is_scalar( $string ) && ! is_null( $string ) ) {
     1161        if ( ! is_scalar( $string ) ) {
    11621162            return '';
    11631163        }
Note: See TracChangeset for help on using the changeset viewer.