Pregunta:
Fecha: 15-12-2019 14:07:56
(En Español)
Resulta que estoy ensayando con un proyecto local y tengo un problema para actualizar un campo en mi base de datos, ya he hecho un var_dump() del dato que necesito y los datos me llegan correctamente, pero resulta que tengo un error y tal parece que es en la consulta pero no logro entender cual es ese error.
Aqui les voy a dejar el codigo PHP para que revisen mi consulta tambien les estare dejando el codigo de html para si tienen que hacer alguna prueba.
Codigo PHP
Codigo html
Ojala logre resolver este problema, un codiar saludo Votos: 0 - Respuestas: 1 - Vistas: 8 Compartir en: Google Facebook Twitter LinkedIn Link
Problemas para actualizar un registro en la base de datos[Resuelta]
Hola amigos de la comunidad.Resulta que estoy ensayando con un proyecto local y tengo un problema para actualizar un campo en mi base de datos, ya he hecho un var_dump() del dato que necesito y los datos me llegan correctamente, pero resulta que tengo un error y tal parece que es en la consulta pero no logro entender cual es ese error.
Aqui les voy a dejar el codigo PHP para que revisen mi consulta tambien les estare dejando el codigo de html para si tienen que hacer alguna prueba.
Codigo PHP
<?php require_once 'conexion.php'; $email = $_SESSION['email']; // declarar las variables de error o exito $errors = ''; $success = ''; // tomar todos los datos que nos llegan por post if(isset($_POST['edit'])){ $message = $_POST['message']; // Validar que el dato no este vacio if(empty($message)){ $errors .= '* Tu biografia no puede estar vacia'; } // Limpar datos $message = htmlspecialchars($message); $message = trim($message); $message = filter_var($message, FILTER_SANITIZE_STRING); var_dump($message); // actualizar el dato en la base de datos if(empty($errors)){ $statement = $conexion->prepare("UPDATE users SET message = $message WHERE email = $email"); $success .= "Tu biografia se ha actualizado correctamente"; // header("Refresh:3; url=index.php"); } } ?>
Codigo html
<?php session_start(); // Comprobar si el usuario ha inciado sesion if(empty($_SESSION['email'])){ header('Location: index.php'); } require_once 'backend/edit.php'; $email = $_SESSION['email']; // Sacar el nombre de la persona que ha iniciado sesion $stmt = $conexion->query("SELECT * FROM users WHERE email = '$email'"); $stmt->execute(['email' => $email]); while ($row = $stmt->fetch()) { $name = $row['name']; $surname = $row['surname']; $message = $row['message']; } ?> <!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Blog Master | Edita tu biografia</title> <!-- Favicon --> <link rel="shortcut icon" href="img/favicon.png" type="image/x-icon"> <!-- Estilos CSS --> <link rel="stylesheet" href="css/style.css"> <!-- Google Fonts --> <link href="https://fonts.googleapis.com/css?family=Livvic&display=swap" rel="stylesheet"> </head> <body> <!-- Header de la pagina --> <?php require 'header.php'; ?> <main> <section id="contenedor"> <a href="cerrar.php" class="salir">Cerrar Sesion</a> <article> <h3>Describe tus gustos o algo más...</h3> <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="POST"> <textarea name="message" id="formEdit" placeholder="<?php echo $name; ?>, edita tu biografia"> <?php echo $message; ?> </textarea> <button class="login" name="edit" type="submit">Editar</button> </form> </article> </section> </main> <!-- Footer de la pagina --> <?php require 'footer.php'; ?> </body> </html>
Ojala logre resolver este problema, un codiar saludo Votos: 0 - Respuestas: 1 - Vistas: 8 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 15-12-2019 14:38:27 Ya lo he solucionado, el problema estaba en el requerimiento de mi funcion que contiene la conexion a la base de datos y no le estaba poniendo los puntos a las variables en la sentencia sql.
De todas maneras aqui dejo el codigo PHP ya resuelto:
<?php require_once './conexion.php'; $email = $_SESSION['email']; // declarar las variables de error o exito $errors = ''; $success = ''; // tomar todos los datos que nos llegan por post if(isset($_POST['edit'])){ $message = $_POST['message']; // Validar que el dato no este vacio if(empty($message)){ $errors .= '* Tu biografia no puede estar vacia'; } // Limpar datos $message = htmlspecialchars($message); $message = trim($message); $message = filter_var($message, FILTER_SANITIZE_STRING); // actualizar el dato en la base de datos if(empty($errors)){ $statement = $conexion->prepare("UPDATE users SET message = '$message' WHERE email = '$email'"); $statement->execute(array( ':message' => $message, ':email' => $email )); $success .= "Tu biografia se ha actualizado correctamente"; header("Refresh:3; url=index.php"); } } ?>
Votos: -1 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión