W3cubDocs

/WordPress

wpdb::get_results( string $query = null, string $output = OBJECT ): array|object|null

Retrieves an entire SQL result set from the database (i.e., many rows).

Description

Executes a SQL query and returns the entire SQL result.

Parameters

$querystringoptional
SQL query.

Default:null

$outputstringoptional
Any of ARRAY_A | ARRAY_N | OBJECT | OBJECT_K constants.
With one of the first three, return an array of rows indexed from 0 by SQL result row number. Each row is an associative array (column => value, …), a numerically indexed array (0 => value, …), or an object ( ->column = value ), respectively. With OBJECT_K, return an associative array of row objects keyed by the value of each row’s first column’s value. Duplicate keys are discarded.

Default:OBJECT

Return

array|object|null Database query results.

Source

public function get_results( $query = null, $output = OBJECT ) {
	$this->func_call = "\$db->get_results(\"$query\", $output)";

	if ( $query ) {
		if ( $this->check_current_query && $this->check_safe_collation( $query ) ) {
			$this->check_current_query = false;
		}

		$this->query( $query );
	} else {
		return null;
	}

	$new_array = array();
	if ( OBJECT === $output ) {
		// Return an integer-keyed array of row objects.
		return $this->last_result;
	} elseif ( OBJECT_K === $output ) {
		/*
		 * Return an array of row objects with keys from column 1.
		 * (Duplicates are discarded.)
		 */
		if ( $this->last_result ) {
			foreach ( $this->last_result as $row ) {
				$var_by_ref = get_object_vars( $row );
				$key        = array_shift( $var_by_ref );
				if ( ! isset( $new_array[ $key ] ) ) {
					$new_array[ $key ] = $row;
				}
			}
		}
		return $new_array;
	} elseif ( ARRAY_A === $output || ARRAY_N === $output ) {
		// Return an integer-keyed array of...
		if ( $this->last_result ) {
			if ( ARRAY_N === $output ) {
				foreach ( (array) $this->last_result as $row ) {
					// ...integer-keyed row arrays.
					$new_array[] = array_values( get_object_vars( $row ) );
				}
			} else {
				foreach ( (array) $this->last_result as $row ) {
					// ...column name-keyed row arrays.
					$new_array[] = get_object_vars( $row );
				}
			}
		}
		return $new_array;
	} elseif ( strtoupper( $output ) === OBJECT ) {
		// Back compat for OBJECT being previously case-insensitive.
		return $this->last_result;
	}
	return null;
}

Changelog

Version Description
0.71 Introduced.

© 2003–2024 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/classes/wpdb/get_results