Estou usando $wpdb->update
para atualizar uma tabela personalizada que tenho no meu banco de dados. Quando var_dump
o resultado retorna:
int(0)
Então tentei $wpdb->print_error()
ver o que havia de errado. No entanto, isso não mostra nada. Eu também tentei $wpdb->show_errors()
, mas novamente não mostrou nada.
Os documentos do wpdb não entram em muitos detalhes sobre como usar essas funções, portanto, não tenho certeza se estou usando-as corretamente. Mas por que o resultado da atualização de uma tabela retornaria 0 e não mostraria erros?
SHOW FULL COLUMNS FROM ``
no meu casoMostrar erros:
$wpdb->show_errors = true
mostra erros automaticamente, seWP_DEBUG
estiver definido comotrue
.$wpdb->suppress_errors = false
pára de suprimir erros.Multissite precisa de tratamento especial
Manuseio de saída
O
$wpdb->update()
método possui três saídas diferentes. Para verificar, você deve salvar o resultado ia var:$result = $wpdb->update( /* ... */ );
.O lidar com esses cenários:
false === $result
: Falhou0 === $result
: Sucesso, mas nenhuma atualização0 < $result
: SucessoSaída de classe
$wpdb->last_error
mostrará o último erro, se você tiver um.$wpdb->last_query
ajudará você a mostrar a última consulta (onde ocorreu o erro). É basicamente o mesmo quearray_pop( $wpbd->queries );
.Nota importante (segurança)
Por favor, não adicione códigos no local ao vivo. Especialmente se plugins de cache estiverem envolvidos. Isso pode expor dados importantes relacionados ao banco de dados para os visitantes !
Se você não pode fazer o contrário: sempre envolva seu código em instruções condicionais para evitar saída de depuração voltada para o público!
A exposição do
$wpdb
objeto também pode expor o nome de usuário e a senha do banco de dados!fonte
Uma resposta zero significa zero linhas afetadas, o que é diferente de um erro.
É difícil dizer sem examinar sua consulta por que nenhuma linha está sendo atualizada. Uma ferramenta de depuração que você pode tentar é definir "
SAVEQUERIES
" como true no seu arquivo wp-config.php.Então, depois de suas corridas de consulta, tente
var_dump
ing$wpdb->queries
.fonte
fonte
Tente isso antes da sua consulta:
ou talvez depois da sua consulta:
fonte