Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: SrTrp en 13 Enero 2021, 21:07 pm



Título: No actualiza campo en BD
Publicado por: SrTrp en 13 Enero 2021, 21:07 pm
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
  1. $sql = "UPDATE usuarios SET rol='hr' WHERE no_empleado='MX000003'";  
  2. if ($link->query($sql) === TRUE) {
  3.  echo "Se ah actualizado";
  4. } else {
  5.  echo "Error: " . $conn->error;
  6. }
  7.  


Título: Re: No actualiza campo en BD
Publicado por: Xyzed en 13 Enero 2021, 22:00 pm
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
  1. 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
  1. $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.


Título: Re: No actualiza campo en BD
Publicado por: #!drvy en 13 Enero 2021, 22:06 pm
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
  1. $sql = "UPDATE usuarios SET rol='hr' WHERE no_empleado='MX000003'";  
  2.  
  3. if ($link->query($sql)) {
  4.  echo "Se han actualizado {$link->affected_rows} registros.";
  5. } else {
  6.  echo "Error: " . $conn->error;
  7. }


Saludos


Título: Re: No actualiza campo en BD
Publicado por: mchojrin en 15 Enero 2021, 14:18 pm
Otra posibilidad es que no exista ningún registro con no_empleado='MX000003', ¿verificaste eso en la db?