Estoy usando $wpdb->update
para actualizar una tabla personalizada que tengo en mi base de datos. Cuando me var_dump
devuelve el resultado:
int(0)
Así que traté $wpdb->print_error()
de ver qué pasa. Sin embargo, no muestra nada. También lo intenté $wpdb->show_errors()
, pero nuevamente no mostró nada.
Los documentos de wpdb no detallan mucho sobre cómo usar estas funciones, por lo que no estoy seguro de si las estoy usando correctamente. Pero, ¿por qué el resultado de actualizar una tabla devuelve 0 y no muestra ningún error?
SHOW FULL COLUMNS FROM ``
en mi casoMostrar errores:
$wpdb->show_errors = true
muestra errores automáticamente, siWP_DEBUG
está configurado entrue
.$wpdb->suppress_errors = false
deja de suprimir errores.Multisitio necesita tratamiento especial
Manejo de salida
El
$wpdb->update()
método tiene tres salidas diferentes. Para comprobar su contra, debe guardar el resultado ia var:$result = $wpdb->update( /* ... */ );
.El manejo de esos escenarios:
false === $result
: Fallar0 === $result
: Éxito, pero sin actualización0 < $result
: ÉxitoSalida de clase
$wpdb->last_error
le mostrará el último error, si tiene uno.$wpdb->last_query
le ayudará a mostrar la última consulta (donde ocurrió el error). Es básicamente lo mismo quearray_pop( $wpbd->queries );
.Nota importante (seguridad)
Por favor, NO añadir estos códigos en el sitio en vivo. Especialmente no si los complementos de almacenamiento en caché están involucrados. ¡Esto puede exponer datos importantes relacionados con DB a los visitantes !
Si no puede hacer lo contrario: ¡siempre envuelva su código en declaraciones condicionales para evitar la salida de depuración de cara al público!
¡Exponer el
$wpdb
objeto también puede exponer su nombre de usuario y contraseña de la base de datos!fuente
Una respuesta cero significa cero filas afectadas, que es diferente de un error.
Es difícil decir sin mirar su consulta por qué no se están actualizando filas. Una herramienta de depuración que puedes probar es establecer "
SAVEQUERIES
" en verdadero en tu archivo wp-config.php.A continuación, después de que su consulta se ejecuta, intente
var_dump
ing$wpdb->queries
.fuente
fuente
Pruebe esto antes de su consulta:
o tal vez esto después de su consulta:
fuente