No actualiza campo en BD

Iniciado por SrTrp, 13 Enero 2021, 21:07 PM

0 Miembros y 1 Visitante están viendo este tema.

SrTrp

Hola que tal quiero actualizar un campo pero no me deja esto lo hago con un script en seco pero no actualiza el campo que quiero y no marca ningun error, alguién me podria decir a que se debe?
El no_empleado esta 100% escrito correcto de igual forma la tabla
Código (php) [Seleccionar]

$sql = "UPDATE usuarios SET rol='hr' WHERE no_empleado='MX000003'"; 
if ($link->query($sql) === TRUE) {
  echo "Se ah actualizado";
} else {
  echo "Error: " . $conn->error;
}

Xyzed

#1
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.


Código (php) [Seleccionar]
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:
Código (php) [Seleccionar]
$link = mysqli_connect($servername, $username, $password, $database);


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.
...

#!drvy

En estos casos viene bien dar mucha más información que la que has presentado. Por ejemplo:

¿Qué librería usas para la conexión a la base de datos? ¿PDO?, ¿MySQLI? Supongo que mysqli por el tema del $conn->error pero no lo dejes en el aire.

¿Has ejecutado la consulta en otro sitio? ¿En el cliente de mysql? ¿PHPMyAdmin?

Luego siempre puedes imprimir las rows afectadas por tu query. Por ejemplo con tu código seria:

Código (php) [Seleccionar]
$sql = "UPDATE usuarios SET rol='hr' WHERE no_empleado='MX000003'"; 

if ($link->query($sql)) {
  echo "Se han actualizado {$link->affected_rows} registros.";
} else {
  echo "Error: " . $conn->error;
}



Saludos

mchojrin

Otra posibilidad es que no exista ningún registro con no_empleado='MX000003', ¿verificaste eso en la db?
Ayudo a desarrolladores PHP a acceder a puestos mejor remunerados