wpdb::set_sql_mode PHP Method

set_sql_mode() public method

If no modes are passed, it will ensure the current MySQL server modes are compatible.
Since: 3.9.0
public set_sql_mode ( array $modes = [] )
$modes array Optional. A list of SQL modes to set.
    public function set_sql_mode($modes = [])
    {
        if (empty($modes)) {
            if ($this->use_mysqli) {
                $res = mysqli_query($this->dbh, 'SELECT @@SESSION.sql_mode');
            } else {
                $res = mysql_query('SELECT @@SESSION.sql_mode', $this->dbh);
            }
            if (empty($res)) {
                return;
            }
            if ($this->use_mysqli) {
                $modes_array = mysqli_fetch_array($res);
                if (empty($modes_array[0])) {
                    return;
                }
                $modes_str = $modes_array[0];
            } else {
                $modes_str = mysql_result($res, 0);
            }
            if (empty($modes_str)) {
                return;
            }
            $modes = explode(',', $modes_str);
        }
        $modes = array_change_key_case($modes, CASE_UPPER);
        /**
         * Filter the list of incompatible SQL modes to exclude.
         *
         * @since 3.9.0
         *
         * @see wpdb::$incompatible_modes
         *
         * @param array $incompatible_modes An array of incompatible modes.
         */
        $incompatible_modes = (array) apply_filters('incompatible_sql_modes', $this->incompatible_modes);
        foreach ($modes as $i => $mode) {
            if (in_array($mode, $incompatible_modes)) {
                unset($modes[$i]);
            }
        }
        $modes_str = implode(',', $modes);
        if ($this->use_mysqli) {
            mysqli_query($this->dbh, "SET SESSION sql_mode='{$modes_str}'");
        } else {
            mysql_query("SET SESSION sql_mode='{$modes_str}'", $this->dbh);
        }
    }