Дубликат данных при insert, как исправить?

0

При вставке данных с помощью INSERT одна и та же строка добавляется при каждом обновлении. Как этого избежать?

<?php

$mysqli = new mysqli('localhost', 'root', '', 'kinomonster');

if(mysqli_connect_errno()) {

print_f("Соединение не установлено", mysqli_connect_error());
exit();
}

$mysqli->set_charset('UTF8');

$query = $mysqli->query('SELECT * FROM music');

while($row = mysqli_fetch_assoc($query)) {

echo $row['name']." - ".$row['author']."<br>";
}

$query = "INSERT INTO music VALUES(null, 'Nothing else matters', 'Metallica')";

$mysqli->query($query);


$mysqli->close();

?>
php
mysql

2 ответов

0

Спасибо!!

1

Страница когда загружается, выполняется код insert и при каждой перезагрузки страницы будет происходить вставка в базу данных. Нужно html форму создать и выполнять код insert по нажатию на кнопку из формы. 

Тут есть пример задания плеер в первом ответе, вместе с базой данных:

https://fructcode.com/ru/qa/php-mysql-domasnee-zadanie-57-uroka-tgukud/

Там где код вставки, нужно добавить редирект, чтобы при обновлении страницы данные не вставлялись повторно:

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

От сюда:

https://fructcode.com/ru/qa/pochemu-pri-kajdom-obnovlenii-tablisi/

Sign up or Log in to write an answer