функция
since 4.2.0
maybe_convert_table_to_utf8mb4()
Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.
Сигнатура
maybe_convert_table_to_utf8mb4( string $table ): bool
Описание
Если таблица содержит только столбцы utf8 или utf8mb4, преобразует её в utf8mb4.
Параметры
$table
string
обязательный
Таблица для преобразования.
Возвращаемое значение
bool
Исходный код
wp-admin/includes/upgrade.php:2796
function maybe_convert_table_to_utf8mb4( $table ) {
global $wpdb;
$results = $wpdb->get_results( "SHOW FULL COLUMNS FROM `$table`" );
if ( ! $results ) {
return false;
}
foreach ( $results as $column ) {
if ( $column->Collation ) {
list( $charset ) = explode( '_', $column->Collation );
$charset = strtolower( $charset );
if ( 'utf8' !== $charset && 'utf8mb4' !== $charset ) {
// Don't upgrade tables that have non-utf8 columns.
return false;
}
}
}
$table_details = $wpdb->get_row( "SHOW TABLE STATUS LIKE '$table'" );
if ( ! $table_details ) {
return false;
}
list( $table_charset ) = explode( '_', $table_details->Collation );
$table_charset = strtolower( $table_charset );
if ( 'utf8mb4' === $table_charset ) {
return true;
}
return $wpdb->query( "ALTER TABLE $table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci" );
}
История изменений
| Версия | Описание |
|---|---|
| 4.2.0 | Introduced. |

