wpdb::get_var( string|null $query = null, int $x, int $y ): string|null

Retrieves one value from the database.

Description

Executes a SQL query and returns the value from the SQL result.
If the SQL result contains more than one column and/or more than one row, the value in the column and row specified is returned. If $query is null, the value in the specified column and row from the previous SQL result is returned.

Returns null both on failure and when the matched cell value is an empty string. To distinguish the two cases, check self::$last_error.

Parameters

$querystring|nulloptional
SQL query. Defaults to null, use the result from the previous query.

Default:null

$xintoptional
Column of value to return. Indexed from 0. Default 0.
$yintoptional
Row of value to return. Indexed from 0. Default 0.

Return

string|null Database query result (as string), or null on failure or when the value is an empty string.

Source

public function get_var( $query = null, $x = 0, $y = 0 ) {
	$this->func_call = "\$db->get_var(\"$query\", $x, $y)";

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

		$this->query( $query );
	}

	// Extract var out of cached results based on x,y vals.
	if ( ! empty( $this->last_result[ $y ] ) ) {
		/**
		 * Column values.
		 *
		 * These are returned from the database as strings, or null for SQL NULL, but get_object_vars() types the
		 * property values as mixed.
		 *
		 * @var list<string|null> $values
		 */
		$values = array_values( get_object_vars( $this->last_result[ $y ] ) );
	}

	// If there is a value return it, else return null.
	return ( isset( $values[ $x ] ) && '' !== $values[ $x ] ) ? $values[ $x ] : null;
}

Changelog

VersionDescription
0.71Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.