Неизвестный столбец 'wp_' в 'списке полей' при запуске WordPress на PHP 8.1

Можно ли прямо сейчас запустить Wordpress на PHP 8.1? Я установил PHP 8.1 в XAMPP, но не могу заставить работать Wordpress. Я получаю это сообщение об ошибке:

[23-ноя-2021, 18:44:43 UTC] Неустранимая ошибка PHP: Неперехваченный mysqli_sql_exception: Неизвестный столбец 'wp_' в 'списке полей' в C: \ xampp \ htdocs \ my_php_81_folder \ normal_local_site \ wp-includes \ wp-db. php: 2056 Трассировка стека: #0 C: \ xampp \ htdocs \ my_php_81_folder \ normal_local_site \ wp-includes \ wp-db.php(2056):mysqli_query(Object(mysqli), 'SELECT wp_')#1 C: \ xampp \ htdocs \ my_php_81_folder \ normal_local_site \ wp-includes \ wp-db.php(1945):wpdb->do_query('SELECT wp')#2 C: \ xampp \ htdocs \ my_php_81_folder \ normal_local_site \ wp-admin \ setup-config.php(317):wpdb->query('SELECT wp_')#3 {main} брошено в C: \ xampp \ htdocs \ my_php_81_folder \ normal_local_site \ wp-includes \ wp-db.php в строке 2056 [23 ноября 2021 года, 18:45:45 UTC] Неустранимая ошибка PHP: не перехвачено mysqli_sql_exception: неизвестный столбец 'wp_' в 'списке полей' в C : \ xampp \ htdocs \ my_php_81_folder \ normal_local_site \ wp-includes \ wp-db.php:2056

Я убедился, что PHP 8.1 обслуживается в этой папке, и я могу запускать команды PDO и mysqli, которые успешно создают и изменяют локальные базы данных.

3 ответа

По состоянию на ноябрь 2021 года WordPress еще не полностью совместим с PHP 8.1. Релиз, запланированный на декабрь (WordPress 5.9), должен быть совместим с PHP 8.1, который выйдет 25 ноября 2021 года.

В настоящее время, пожалуйста, используйте PHP 8.0 с WordPress, чтобы избежать странных ошибок.

Для всех, кто достигнет этого в ближайшие пару дней до выхода Wordpress 5.9, я смог заставить 5.8.3 работать на PHP 8.1, внеся быстрое изменение в wp-includes/wp-db.php. Я добавил эту строку после if ( $this->use_mysqli )в db_connectметод (строка 1630):

      mysqli_report(MYSQLI_REPORT_OFF);

Это изменение сделано в самом Wordpress 5.9, так что все должно быть в порядке.

@/SergeyBiryukov выдвинул исправление ошибки, которое должно быть доступно в следующей версии WordPress. Если у вас возникла эта проблема, вы можете подавить эти ошибки, открыв wp-admin/setup-config.php и заменив следующие строки.

Заменять

       $errors = $wpdb->hide_errors();

С

      $errors = $wpdb->suppress_errors();

И заменить

      $wpdb->show_errors( $errors );

С

      $wpdb->suppress_errors( $errors );
Другие вопросы по тегам