Я знаю, что я просто упускаю простейшую вещь здесь, но, кажется, не могу понять это.
, так что это работает с этим кодом, но изменяет все строки базы данных, а не только строку с идентификатором страницы....
<? $pageid= $_GET["id"];
$sql = "SELECT id, first_name, last_name, email, bio, job, job2, job3 FROM `".weapons."` WHERE id = $pageid";
if(isset($_POST['Update']))
{
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$job = $_POST['job'];
$job2 = $_POST['job2'];
$job3 = $_POST['job3'];
$bio = $_POST['bio'];
$email = $_POST['email'];
$sql = "UPDATE weapons SET first_name='$first_name', email='$email' , job='$job', job2='$job2', job3='$job3', bio='$bio', last_name='$last_name'";
if (@mysql_query($sql)) {
echo('<p>Update Complete</p>');
} else {
echo('<p>Error updating: ' . mysql_error() . '</p>');
}
}else{ ...
однако при добавлении предложения WHERE, например, следующим образом
$sql = "UPDATE weapons SET first_name='$first_name', email='$email' , job='$job', job2='$job2', job3='$job3', bio='$bio', last_name='$last_name' WHERE id = $pageid";
Я получаю ошибку
Ошибка обновления: у вас есть ошибка в вашемСинтаксис SQL;проверьте руководство, которое соответствует вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с '' в строке 1
Любая помощь будет отличной, спасибо
РЕДАКТИРОВАТЬ
Я на самом деле пропустил очень простую вещь, что я изначально и предполагал, сначала у меня в форме было <form method='post' enctype='multipart/form-data' action='submit.php'>
однако это явно испортило get id, потому что идея отсутствует, поэтому даже если эта страница былаsubmit.php? id = 4, когда вы нажмете на submit, он не запустится, потому что id пропал.
Переключение кода на <form method='post' enctype='multipart/form-data' action='#'>
просто помогло.
Спасибо за помощь, ребятаи сейчас я изучаю инъекцию sql и работаю над тем, как лучше защитить свой сайт.