EVOLUTION-MANAGER
Edit File: class-translate.php
<?php /** * The translate functions. * * @since 1.0.0 * @package RankMath * @subpackage RankMath\Admin\Database * @author RankMath <support@rankmath.com> */ namespace RankMath\Admin\Database; /** * Translate class. */ trait Translate { /** * Translate the current query to an SQL select statement * * @return string */ private function translateSelect() { // @codingStandardsIgnoreLine $query = [ 'SELECT' ]; if ( $this->found_rows ) { $query[] = 'SQL_CALC_FOUND_ROWS'; } if ( $this->distinct ) { $query[] = 'DISTINCT'; } $query[] = $this->has_sql_clause( 'select' ) ? $this->get_sql_clause( 'select', true ) : '*'; $query[] = $this->translateFrom(); $query[] = $this->get_sql_clause( 'join', true ); $query[] = $this->get_sql_clause( 'where', true ); $query[] = $this->translateGroupBy(); $query[] = $this->translateOrderBy(); $query[] = $this->translateLimit(); return join( ' ', array_filter( $query ) ); } /** * Translate the current query to an SQL update statement * * @return string */ private function translateUpdate() { // @codingStandardsIgnoreLine $query = [ "UPDATE {$this->table} SET" ]; // Add the values. $values = []; foreach ( $this->sql_clauses['values'] as $key => $value ) { $values[] = $key . ' = ' . $this->esc_value( $value ); } if ( ! empty( $values ) ) { $query[] = join( ', ', $values ); } $query[] = $this->get_sql_clause( 'where', true ); $query[] = $this->translateLimit(); return join( ' ', array_filter( $query ) ); } /** * Translate the current query to an SQL delete statement * * @return string */ private function translateDelete() { // @codingStandardsIgnoreLine $query = [ 'DELETE' ]; $query[] = $this->translateFrom(); $query[] = $this->get_sql_clause( 'where', true ); $query[] = $this->translateLimit(); return join( ' ', array_filter( $query ) ); } /** * Build the from statement. * * @return string */ private function translateFrom() { // @codingStandardsIgnoreLine if ( ! $this->has_sql_clause( 'from' ) ) { $this->add_sql_clause( 'from', $this->table ); } return 'FROM ' . $this->get_sql_clause( 'from', true ); } /** * Build the order by statement * * @return string */ protected function translateOrderBy() { // @codingStandardsIgnoreLine if ( ! $this->has_sql_clause( 'order_by' ) ) { return ''; } return 'ORDER BY ' . $this->get_sql_clause( 'order_by', true ); } /** * Build the group by clauses. * * @return string */ private function translateGroupBy() { // @codingStandardsIgnoreLine if ( ! $this->has_sql_clause( 'group_by' ) ) { return ''; } $group_by = 'GROUP BY ' . $this->get_sql_clause( 'group_by', true ); if ( $this->has_sql_clause( 'having' ) ) { $group_by .= ' ' . $this->get_sql_clause( 'having', true ); } return $group_by; } /** * Build offset and limit. * * @return string */ private function translateLimit() { // @codingStandardsIgnoreLine return $this->get_sql_clause( 'limit', true ); } }