Пока я обновляю свой браузер, записи регистрационной формы попадают в базу данных каждый раз, когда я нажимаю REFRESH, профессор сказал мне, чтобы решить эту проблему с помощью LAST_INSERT_ID()
,
Я могу получить last_insert_id
из базы данных, но не знает, что мне делать дальше с этим идентификатором.
Пожалуйста помоги..
введите описание изображения здесь
Рекомендуемый способ — использовать Post / Redirect / Get шаблон.
Есть и другие способы достичь желаемого Вот.
Я не уверен, что ваш профессор просит сделать с последним идентификатором вставки. Может быть, он имеет в виду что-то вроде этого,
if(isset($_SESSION['last_insert_id'])){ // At the beggining
//redirect to a another location
}
// Code for insertion goes here
$_SESSION['last_insert_id'] = $last_insert_id; // Get and store the insertion id as a session
Я думаю, что вы используете ту же страницу для сохранения данных, если это так, то следуйте следующему методу:
<?php
if(isset($_POST[userName]))
{
// Put your Registration Operation Code Here
header('Location: ./Registrationform.php');
}
?>
После вставки базы данных он перенаправляет на ту же страницу. Теперь обновление выполняется методом GET, а не методом POST. Таким образом, вы можете удалить дубликаты записей таким способом.
В соответствии с вашим требованием я использовал последний введенный идентификатор для проверки перед вставкой записей в базу данных.
<?php
session_start();
if(isset($_POST[userID]))
{
$flag = false;
if(isset($_SESSION['last_insert_id']))
{
if($_SESSION['last_insert_id'] == $_POST[userID])
{
$flag = false;
header('Location: ./Registrationform.php');
}
else
{
$flag = true;
$_SESSION['last_insert_id'] = $_POST[userID];
}
}
if($flag == true)
{
// Put your Registration Operation Code Here
}
}
?>