>데이터 베이스 >MySQL 튜토리얼 >PHP 스크립트를 한 번만 실행했는데도 MySQL에 데이터를 두 번 삽입하는 이유는 무엇입니까?

PHP 스크립트를 한 번만 실행했는데도 MySQL에 데이터를 두 번 삽입하는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-24 05:29:10642검색

Why is my PHP script inserting data twice into MySQL even though I only ran it once?

PHP는 한 번 실행되지만 MySQL 데이터베이스에 두 번 삽입됩니다.

제공된 코드를 로컬에서 실행할 때 데이터베이스가 두 번 삽입하는 예외가 발생할 수 있습니다. 스크립트가 한 번만 실행된 후 하나가 아닌 레코드를 기록합니다. 이 문제는 Opera나 Chrome과 같은 브라우저에서 특히 두드러집니다.

이 문제는 일반적인 브라우저 동작인 파비콘 요청으로 인해 발생합니다. 웹사이트에 접속하면 브라우저는 스크립트에 대한 요청과 파비콘에 대한 두 번째 요청을 보냅니다. 귀하의 경우 코드는 모든 요청을 처리하므로 데이터베이스 레코드를 두 번 삽입하려고 시도하여 중복 항목이 발생합니다.

이 문제를 해결하려면 삽입 쿼리만 실행되도록 코드를 수정해야 합니다. 초기 페이지 로드와 같은 특정 요청의 경우. 현재 페이지의 요청된 URI를 제공하는 PHP $_SERVER['REQUEST_URI'] 변수를 활용하여 이를 달성할 수 있습니다. 이 변수를 알려진 값(예: 홈페이지 URI)과 비교하여 삽입 쿼리의 실행을 특정 요청으로 제한할 수 있습니다.

예를 들어 다음과 같이 코드를 수정할 수 있습니다.

$requestURI = $_SERVER['REQUEST_URI'];
if ($requestURI == '/index.php') {
  $sql = "INSERT INTO test_table (value, insert_time) VALUES ('testing', '" . time() . "')";
  $result = mysql_query($sql);
}

이 수정을 통해 홈 페이지에 액세스할 때만 삽입 쿼리가 실행되어 브라우저가 파비콘을 요청할 때 중복된 데이터베이스 삽입을 방지할 수 있습니다.

위 내용은 PHP 스크립트를 한 번만 실행했는데도 MySQL에 데이터를 두 번 삽입하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.