serii81
@serii81
Я люблю phр...

Почему не работает sql запрос?

Хочу при активации плагина в вордпресс добавить новое поле в таблице wp_posts.
register_activation_hook( __FILE__, 'wfm_create_field' );
function wfm_create_field(){
    global $wpdb;

    $query = "ALTER TABLE $wpdb->posts ADD 'wfm_views' INT NOT NULL DEFAULT '0'";

    $wpdb->query($query);
}


Вот запрос из phpmyadmin
ALTER TABLE `wp_posts` ADD `wfm_veiws` INT(100) NOT NULL DEFAULT '0' AFTER `comment_count`;


И выдает ошибку некорректное значение по-умолчанию

Вот данные
5b0c5a88e99df570407403.jpeg

а вот ошибка
5b0c5a9bc7f82509380689.jpeg

Как решить?
Заранее благодарен.
  • Вопрос задан
  • 158 просмотров
Решения вопроса 2
serii81
@serii81 Автор вопроса
Я люблю phр...
Вопрос решен.
Изменил запись
$query = "ALTER TABLE $wpdb->posts ADD wfm_views INT NOT NULL DEFAULT '0'";


Убрал кавычки у wfm_views.
Только остался вопрос, почему этот код в phpmyadmin не работает?

И на этот вопрос нашел решение

Заработало, только после того как установил значение по-умолчанию для post_date post_date_gmt post_date_modified post_date_modified_gmt.
Ответ написан
Immortal_pony
@Immortal_pony Куратор тега MySQL
Только остался вопрос, почему этот код в phpmyadmin не работает?

Потому что значение по умолчанию для поля "post_date" (и возможно для других полей с датой в данной таблице) некорректное. Скорее всего это произошло из-за обновления версии mysql - c какого-то момента он совсем перестал уважать значение "0000-00-00" для дат по умолчанию. Если вы добавите в свой ALTER изменение значения по умолчанию для поля "post_date" на корректное (например, на "1970-01-01"), то запрос заработает.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы