wpdb::process_field_charsets( array $data, string $table ): array|false

In this article

Adds field charsets to field/value/format arrays generated by wpdb::process_field_formats().

Parameters

$dataarrayrequired
Array of values and formats keyed by their field names, as it comes from the wpdb::process_field_formats() method.
  • ...$0 array
    Value and format for this field.
    • value mixed
      The value to be formatted.
    • format string
      The format to be mapped to the value.
$tablestringrequired
Table name.

Return

array|false The same array of data with additional ‘charset’ keys, or false if the charset for the table cannot be found.
  • ...$0 array
    Value, format, and charset for this field.
    • value mixed
      The value to be formatted.
    • format string
      The format to be mapped to the value.
    • charset string|false
      The charset to be used for the value.

Source

protected function process_field_charsets( $data, $table ) {
	foreach ( $data as $field => $value ) {
		if ( '%d' === $value['format'] || '%f' === $value['format'] ) {
			/*
			 * We can skip this field if we know it isn't a string.
			 * This checks %d/%f versus ! %s because its sprintf() could take more.
			 */
			$value['charset'] = false;
		} else {
			$value['charset'] = $this->get_col_charset( $table, $field );
			if ( is_wp_error( $value['charset'] ) ) {
				return false;
			}
		}

		$data[ $field ] = $value;
	}

	return $data;
}

Changelog

VersionDescription
4.2.0Introduced.

User Contributed Notes

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