wpdb::get_col_charset()publicWP 4.2.0

Retrieves the character set for the given column.

Метод класса: wpdb{}

Хуки из метода

Возвращает

Строку|false|WP_Error. Column character set as a string. False if the column has no character set. WP_Error object if there was an error.

Использование

global $wpdb;
$wpdb->get_col_charset( $table, $column );
$table(строка) (обязательный)
Table name.
$column(строка) (обязательный)
Column name.

Список изменений

С версии 4.2.0 Введена.

Код wpdb::get_col_charset() WP 6.5.2

public function get_col_charset( $table, $column ) {
	$tablekey  = strtolower( $table );
	$columnkey = strtolower( $column );

	/**
	 * Filters the column charset value before the DB is checked.
	 *
	 * Passing a non-null value to the filter will short-circuit
	 * checking the DB for the charset, returning that value instead.
	 *
	 * @since 4.2.0
	 *
	 * @param string|null|false|WP_Error $charset The character set to use. Default null.
	 * @param string                     $table   The name of the table being checked.
	 * @param string                     $column  The name of the column being checked.
	 */
	$charset = apply_filters( 'pre_get_col_charset', null, $table, $column );
	if ( null !== $charset ) {
		return $charset;
	}

	// Skip this entirely if this isn't a MySQL database.
	if ( empty( $this->is_mysql ) ) {
		return false;
	}

	if ( empty( $this->table_charset[ $tablekey ] ) ) {
		// This primes column information for us.
		$table_charset = $this->get_table_charset( $table );
		if ( is_wp_error( $table_charset ) ) {
			return $table_charset;
		}
	}

	// If still no column information, return the table charset.
	if ( empty( $this->col_meta[ $tablekey ] ) ) {
		return $this->table_charset[ $tablekey ];
	}

	// If this column doesn't exist, return the table charset.
	if ( empty( $this->col_meta[ $tablekey ][ $columnkey ] ) ) {
		return $this->table_charset[ $tablekey ];
	}

	// Return false when it's not a string column.
	if ( empty( $this->col_meta[ $tablekey ][ $columnkey ]->Collation ) ) {
		return false;
	}

	list( $charset ) = explode( '_', $this->col_meta[ $tablekey ][ $columnkey ]->Collation );
	return $charset;
}