Declaração de preparação adequada para ALTER TABLE e usando APÓS

Meu código para ALTER TABLE não faz uso do método prepare() de $wpdb e, portanto, o código precisa ser atualizado corretamente. Há muitos exemplos de consulta SELECT , etc, mas não conseguiu encontrar algo para ALTER TABLE com várias opções incluídas no SQL.

Este é o código antigo.

 $post_qry = $wpdb->get_row( "SELECT * FROM $wpdb->posts" ); if ( ! isset( $post_qry->forum_id ) ) { $wpdb->query( "ALTER TABLE {$wpdb->posts} ADD `forum_id` INT( 10 ) UNSIGNED NOT NULL DEFAULT '0' AFTER `ID` " ); } 

Esta é a minha primeira tentativa, mas algo não parece certo para o ADD.

 if ( ! isset( $post_qry->forum_id ) ) { $wpdb->query( $wpdb->prepare( "ALTER TABLE {$wpdb->posts} ADD col= %s INT( 10 ) UNSIGNED NOT NULL DEFAULT '0' AFTER col = %s ", 'forum_id', 'ID' ) ); } 
  • Primeiro, é apropriado usar ADD col = ou ADD COLUMN=%s ?

  • Em segundo lugar, é o mesmo verdadeiro para indicar após col=%s ?

  • Em terceiro lugar, INT e UNSIGNED devem ser usados ​​como %s também?

Obrigado pelo seu tempo para explicar e talvez apontar para um bom recurso .

Solutions Collecting From Web of "Declaração de preparação adequada para ALTER TABLE e usando APÓS"

A resposta a esta pergunta realmente vem de @TomJNowell. Em vez de usar chamadas MySQL, use as funções nativas incluídas no WordPress:

 update_post_meta ( $post->ID , 'forum_id', $thread_id ); 

onde o forum_id é a chave eo $thread_id é o valor. Eu tentei add_post_meta mas que criou duplicatas.

Para recuperar os metadados

$thread_id = get_post_custom_values( 'thread_id', $post->ID);

Agora estou olhando maneiras de adicionar ao meta do comentário. Espero que isso ajude alguém.