2013-07-30 2 views
-2

동시에 여러 응용 프로그램을 사용하여 여러 사용자가 PHP 웹 페이지를 구현했습니다. 응용 프로그램에서 사용자는 일부 입력 필드를 채우고 데이터를 백엔드로 보낼 수 있습니다. 백엔드는 계산을하여 MySQL 테이블로 보낸다. 문제는 2 명 이상의 사용자가 응용 프로그램을 동시에 사용하면 모든 사용자 입력 데이터를 데이터베이스에 저장한다는 것입니다.PHP 백엔드가 다른 세션의 데이터를 저장합니다.

사용자 1 개 입력 :

사용자 2 입력 "이이 dB로 작성해야"예를 들면 다음과 같습니다이다 "이이 DB에 기록되지해야합니다

에 사용자 1 프레스 제출하는 경우 버튼을 누르면 데이터가 백엔드 파일로 전송되고 백엔드 파일은 MySQL 테이블에 데이터를 씁니다 문제는 여기에 있습니다 : 사용자 2가 제출을 누르지 않았지만 사용자 1과 사용자 2의 입력이 모두 데이터베이스에 기록됩니다 버튼을 클릭하십시오.

이 문제를 해결하는 방법에 대한 아이디어는 무엇입니까?

+2

기타 ... 데이터가 전송되지 않고 데이터를 수신하는 것이 불가능합니다 .. – user20232359723568423357842364

+2

어떤 코드가 잘못되었는지 보려면 알려주세요. – Matthijs

답변

1

DB에 쓰기 전에 파일을 사용하지 마십시오. DB에 직접 작성하십시오. MySQL은 당신을 위해 동시성과 잠금을 처리 할 것이다.

DB에 쓰는 동안 어떤 이유로 차단하지 않으려는 경우 테이블 유형에 따라 INSERT DELAYED을 시도 할 수 있습니다. 다른 대기열 처리 시스템을 사용할 수 있습니다.

1

모든 사용자의 데이터를 $ _SESSION에 저장하고 사용자가 저장 버튼을 클릭 한 후에 만이 사용자의 데이터를 DB에 저장합니다.

일부 임시 사용자 별 데이터를 저장하려면 대신 세션을 사용하십시오.
이러한 목적으로 사용됩니다.

+0

MySQL에 임시로 저장하거나 저장할 수 있습니다. 그것이 의미가 있는지 여부는 Cemil이 충분히 결정하지 못했다는 구체적인 상황에 달려 있습니다. 세션은 일시적인 허튼뿐만 아니라 세션 수준의 데이터를위한 것입니다. – Brad

+0

내가 읽은 것에서 그는 계산 결과를 데이터베이스에 저장하고 모든 사용자에게이 같은 장소를 사용하는 것처럼 보입니다. 맞다면 세션을 대신 사용하면 문제가 아주 잘 해결됩니다. – MightyPork

관련 문제