Erro encontrado na criação de novas postagens – como corrigir isso?

Recentemente, instalei o WordPress no IIS 7 e liguei-o ao SQL Server 2008R2. A instalação foi bem, depois de um curto período de testes, novas postagens novas já não podiam ser vistas em nenhuma categoria (ou qualquer postagem para esse assunto).

No menu de administração, em posts, vejo que existem seis postagens publicadas “Publicado (6)”. No entanto, a lista abaixo está vazia. Também tentando exibi-los no site, selecionando os retornos de categoria

Nada encontrado

Desculpas, mas nenhum resultado foi encontrado para o arquivo solicitado. Talvez a pesquisa ajudará a encontrar uma postagem relacionada.

Eu reinstalou o database, substitui os arquivos PHP / SQL e o WP reinstalado. O problema persiste.

Eu tentei as sugestões de Configurações / Permalinks aqui e. Nenhuma mudança.

As sugestões aqui referem-se a não poder gravar no arquivo .htaccess. Não é um problema para mim, e não estou vendo o erro de não poder salvar. (Para verificar, eu salvei, saí, naveguei para a mesma página de Permalinks e minhas configurações foram salvas).

Eu até coloquei o arquivo permanente no padrão e removi as regras de reescrita da Web.config:

                 

Nenhuma mudança. (Adicionou-os de volta).

Eu configurei SAVEQUERIES = TRUE em wp-config.php e posso ver o conteúdo de algumas das postagens no arquivo de log.

ie. Olá! Eu sou um mensageiro de bicicleta por dia, aspirante a ator de noite, e este é o meu blog. Moro em Los Angeles, tenha um excelente cachorro chamado Jack …

Nenhuma mudança.

Eu vi outras postagens que se referem à alteração de algumas configurações de segurança, pois o sistema pode estar detectando um possível ataque de injeção SQL. No entanto, essas postagens estão relacionadas a uma instalação relacionada ao Apache e não podem localizar quaisquer referências na minha versão.

Alguma ajuda com isso seria muito apreciada.

Obrigado.

– UPDATE –

Eu tentei novamente com o WP 3.21 – o mesmo problema, e acompanhei o Windows / Temp / php53_errors.log. A única questão que vejo vir acima é

[07-Mar-2012 21:00:51 UTC] Erro do database WordPress 42000: [Microsoft] [SQL Server Native Client 10.0] [SQL Server] Sintaxe incorreta perto de ‘wp_users’. para consultar SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES ONDE TABLE_NAME COMO ” wp_users ” feito por display_setup_form, pdo_wpdb-> consulta, pdo_wpdb -> _ post_query, pdo_wpdb-> print_error

Solutions Collecting From Web of "Erro encontrado na criação de novas postagens – como corrigir isso?"

Analisando o erro

Erro do database WordPress 42000: [Microsoft] [SQL Server Native Client 10.0] [SQL Server] Sintaxe incorreta perto de ‘wp_users’. para consultar SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES ONDE TABLE_NAME COMO ” wp_users ” feito por display_setup_form, pdo_wpdb-> consulta, pdo_wpdb -> _ post_query, pdo_wpdb-> print_error

… lê como:

 SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE ''wp_users'' 

Seu problema

Parece que você obteve constant s na sua string de consulta. E essas constantes simplesmente não são ativadas.

Como fazer o caminho certo

Nota: você não pode colocar constantes dentro de uma string. Você terá que fazer:

 $wpdb->query( $wpdb->prepare( " SELECT %s FROM %s WHERE %s LIKE %s " ), TABLE_NAME, INFORMATION_SCHEMA, TABLE_NAME, like_escape( $wpdb->users ) ); 

Este ↑ é a) salvar e b) a maneira correta de fazê-lo.

A outra falta de entendimento

Os seguintes…

 display_setup_form pdo_wpdb->query pdo_wpdb->_post_query pdo_wpdb->print_error 

… parece vir de nomeação de function errada .

O caminho certo para chamar nomes de tabela e $wpdb ( WP_Query ):

O object $pdo_wpdb->query provavelmente não existe. Você terá que chamar o global $wpdb; no início. Então você terá access a uma série de coisas, como as funções de consulta nativas.

 # Example: global $wpdb; // The prefix you set inside your wp-config.php file echo $wpdb->prefix; // Default tables: print_r( $wpdb->users ); print_r( $wpdb->options ); // Custom tables: print_r( "{wpdb->prefix}your_table_name" );