Hola, el código está correctamente programado.
Lo que podría estar pasando es que "rol" este definido en la base de datos como "integer" en vez de "varchar".
Viéndolo noté que está correctamente desarrollado el update, pero lo probé por las dudas y así es.
if ($link->query($sql) === TRUE) {
Lo único que puedo decirte además de la primer opción de error que te dí, es que quizás estés declarando mal los valores del código citado.
$link: Es la conexión sql, debería ser algo como esto:
Lo que podrías hacer es mandar una imagen de la estructura de la tabla que estás utilizando así puedo darte una mejor ayuda.
Modifico:Está claro que el error es el último que mencione.
Haces referencia a
"$link" como conexión en la validación de la condición, pero luego abajo declaras como conexión ante el error
"$conn".
Fíjate con cual de estas dos variables declaraste realmente la conexión y solucionado.