[ad_1]
<?php include 'connect.php'; $id = $_GET['updateid']; if (isset($_POST['submit'])) { $name = $_POST['name']; $email = $_POST['email']; $phone = $_POST['phone']; $password = $_POST['password']; $sql = "UPDATE `personal info` SET id=$id, name='$name', email='$email', phone='$phone', password='$password' WHERE id=$id"; $result = mysqli_query($con, $sql); if ($result) { echo "updated successfully"; // header('location:display.php'); } else { die(mysqli_error($con)); } } ?>
Lo que he probado:
Probé este pero también digo “Tiene un error en su sintaxis SQL; consulte el manual que corresponde a la versión de su servidor MariaDB para conocer la sintaxis correcta que debe usar cerca de ” en la línea 1″. No sé qué hacer
<?php include 'connect.php'; $id = $_GET['updateid']; if (isset($_POST['submit'])) { $name = $_POST['name']; $email = $_POST['email']; $phone = $_POST['phone']; $password = $_POST['password']; $sql = "UPDATE `personal info` SET Name='$name', Email='$email', Phone='$phone', assword='$password' WHERE id=$id"; $result = mysqli_query($con, $sql); if ($result) { echo "updated successfully"; // header('location:display.php'); } else { die(mysqli_error($con)); } } ?>
Solución 1
¡No lo hagas así! Nunca concatene cadenas para crear un comando SQL. Lo deja completamente expuesto a ataques de inyección SQL accidentales o deliberados que pueden destruir toda su base de datos. Utilice siempre consultas parametrizadas en su lugar.
Cuando concatenas cadenas, causas problemas porque SQL recibe comandos como:
SELECT * FROM MyTable WHERE StreetAddress = 'Baker's Wood'
La cita que agregó el usuario termina la cadena en lo que respecta a SQL y surgen problemas. Pero podría ser peor. Si en su lugar escribo esto: “x’;DROP TABLE MyTable;–” Entonces SQL recibe un comando muy diferente:
SELECT * FROM MyTable WHERE StreetAddress = 'x';DROP TABLE MyTable;--'
Que SQL ve como tres comandos separados:
SELECT * FROM MyTable WHERE StreetAddress = 'x';
Un SELECT perfectamente válido
DROP TABLE MyTable;
Un comando perfectamente válido para “eliminar la tabla”
--'
Y todo lo demás es un comentario.
Así lo hace: selecciona las filas coincidentes, elimina la tabla de la base de datos e ignora todo lo demás.
¡Así que SIEMPRE utilice consultas parametrizadas! O prepárese para restaurar su base de datos desde la copia de seguridad con frecuencia. Realizas copias de seguridad con regularidad, ¿no?
PHP facilita la inclusión de parámetros con consultas: PHP: pg_query_params – Manual[^]
[ad_2]
コメント