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

In this article

For string fields, records the maximum string length that field can safely save.

Parameters

$dataarrayrequired
Array of values, formats, and charsets keyed by their field names, as it comes from the wpdb::process_field_charsets() method.
  • ...$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.
$tablestringrequired
Table name.

Return

array|false The same array of data with additional ‘length’ keys, or false if information for the table cannot be found.
  • ...$0 array
    Value, format, charset, and length 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.
    • length array|false
      Information about the maximum length of the value.
      False if the column has no length.
      • type string
        One of 'byte' or 'char'.
      • length int
        The column length.
        }

Source

protected function process_field_lengths( $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['length'] = false;
		} else {
			$value['length'] = $this->get_col_length( $table, $field );
			if ( is_wp_error( $value['length'] ) ) {
				return false;
			}
		}

		$data[ $field ] = $value;
	}

	return $data;
}

Changelog

VersionDescription
4.2.1Introduced.

User Contributed Notes

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