Почему при обновлении страницы сайта(отправка данных из формы) в таблицу mysql дублируются данные?

6

Почему при каждом обновлении таблицы базы данных, в таблицу дублировались этити данные? Три раза обновил три строки записалось. 

$query = "INSERT INTO movie VALUES(NULL, 'Безумный Макс', 'Описание фильма', '2015', now())";

$mysqli->query($query);

 

php
sql
insert into

3 ответов

8

Потому-что это insert (вставить). Каждый раз обновляя страницу у вас будут вставлятся новые данные. Есть простое решение, чтобы POST запрос не отрабатывал после вставки в базу данных после обновления страницы:

Что-то вроде этого:

 if($mysqli->query($query)) { // Если выполнился query
   
      // Здесь редирект
     header("Location: " . $_SERVER['REQUEST_URI']);
     exit();
 }

 

Если вы про то, почему с insert у вас каждый раз вставляются данные, так и должно быть, если нужно обновлять данные, есть для этого update.

 

3

Вообще это называется PRG, в википедии описана технология :)

2

Спасибо!!!

Sign up or Log in to write an answer