Cuando execute()
devuelve verdadero significa que la declaración fue "correcta", pero no significa que haya cambiado nada. Simplemente significa que no hubo ningún error.
-
Puede haber coincidido con cero filas debido a las condiciones de la cláusula WHERE. Eso todavía se considera un "éxito". Puedes probar un
SELECT
con la misma cláusula WHERE y obtener los resultados para confirmar que coincide con las filas. -
Es posible que haya coincidido con una o más filas, pero los valores que está configurando ya son los valores de esas filas. Puede llamar a
$sth->rowCount()
después de ejecutar, para averiguar cuántas filas afectó la ACTUALIZACIÓN (esto puede ser menor que el número de filas con las que coincidió). -
Si tiene más de una copia de esta tabla, debe verificar que el cambio se haya realizado en la base de datos que está leyendo. A mí me pasa a veces:olvido cambiar un archivo de configuración de la aplicación y no me doy cuenta de que estoy actualizando la base de datos incorrecta.
Este resultó ser el problema, una variación del tercer punto:
- Si trabaja en más de un servidor, también verifique dos veces que está verificando los cambios en el servidor mysql correcto.