WordPress.org

Make WordPress Core

Ticket #31018: 3108-4.diff

File 3108-4.diff, 2.3 KB (added by diddledan, 6 months ago)

Refresh of 3108-3

  • wp-includes/wp-db.php

    diff --git a/wp-includes/wp-db.php b/wp-includes/wp-db.php
    index 39e9331692..039ac5e9ce 100644
    a b class wpdb { 
    16391639                                }
    16401640                        }
    16411641                } else {
    1642                         if ( WP_DEBUG ) {
    1643                                 $this->dbh = mysql_connect( $this->dbhost, $this->dbuser, $this->dbpassword, $new_link, $client_flags );
     1642                        $host = $this->dbhost;
     1643                        $persistent = false;
     1644                        // If DB_HOST begins with a 'p:', remove it and remember to use mysql_pconnect().
     1645                        if ( 0 === strpos( $host, 'p:' ) ) {
     1646                                $host = substr( $host, 2 );
     1647                                $persistent = true;
     1648                        }
     1649                        // If DB_PERSISTENT_CONNECTION is defined and 'true' we will use mysql_pconnect.
     1650                        if ( defined( 'DB_PERSISTENT_CONNECTION' ) && true === DB_PERSISTENT_CONNECTION ) {
     1651                                $persistent = true;
     1652                        }
     1653
     1654                        if ( true === $persistent ) {
     1655                                if ( WP_DEBUG ) {
     1656                                        $this->dbh = mysql_pconnect( $host, $this->dbuser, $this->dbpassword, $client_flags );
     1657                                } else {
     1658                                        $this->dbh = @mysql_pconnect( $host, $this->dbuser, $this->dbpassword, $client_flags );
     1659                                }
    16441660                        } else {
    1645                                 $this->dbh = @mysql_connect( $this->dbhost, $this->dbuser, $this->dbpassword, $new_link, $client_flags );
     1661                                if ( WP_DEBUG ) {
     1662                                        $this->dbh = mysql_connect( $host, $this->dbuser, $this->dbpassword, $new_link, $client_flags );
     1663                                } else {
     1664                                        $this->dbh = @mysql_connect( $host, $this->dbuser, $this->dbpassword, $new_link, $client_flags );
     1665                                }
    16461666                        }
    16471667                }
    16481668
    class wpdb { 
    17241744                        $host   = substr( $host, 0, $socket_pos );
    17251745                }
    17261746
     1747                $pre_host = '';
     1748                if ( version_compare( phpversion(), '5.3.0', '>=' ) ) {
     1749                        // If DB_HOST begins with a 'p:', allow it to be passed to mysqli_real_connect().
     1750                        if ( 0 === strpos( $host, 'p:' ) ) {
     1751                                $host = substr( $host, 2 );
     1752                                $pre_host = 'p:';
     1753                        }
     1754                        // If DB_PERSISTENT_CONNECTION is defined and 'true', add 'p:' to DB_HOST when
     1755                        // passed to mysqli_real_connect() to start a persistent connection.
     1756                        if ( defined( 'DB_PERSISTENT_CONNECTION' ) && true === DB_PERSISTENT_CONNECTION ) {
     1757                                $pre_host = 'p:';
     1758                        }
     1759                }
     1760
    17271761                // We need to check for an IPv6 address first.
    17281762                // An IPv6 address will always contain at least two colons.
    17291763                if ( substr_count( $host, ':' ) > 1 ) {
    class wpdb { 
    17491783                        }
    17501784                }
    17511785
     1786                $host = $pre_host . $host;
     1787
    17521788                return array( $host, $port, $socket, $is_ipv6 );
    17531789        }
    17541790