알 수없는 문제가 발생하여 MySQL에 연결된 PHP API (Slim framework + Slim PDO)를 만들었습니다. Nginx를 HTTP 서버로 사용합니다. API는 클라이언트 (안드로이드 응용 프로그램)를 인식하기 위해 "device-id"헤더를 사용합니다. 관심사는 최근에 안드로이드 응용 프로그램의 업데이트로 인해 사용자가 알 수없는 경우 result API에 대한 2 개의 비동기 요청을하게됩니다. 사용자가 동일한 장치 ID를 전달하는 두 개의 항목으로 나 자신을 찾습니다 사용자 클래스 미들웨어여러 번에 동시에 나쁜 결과가 발생했습니다.
$user = new User($device_id, $ip);
에서
는 createUser() 함수 날짜 등의 장치 ID와 함께 사용자 테이블 엔트리뿐만 아니라 다른 정보 등을 만드는function __construct($device_id, $ip)
{
$this->_device_id = $device_id;
$this->_ip = $ip;
if ($this->isExists())
$this->updateInfo();
else
$this->createUser();
}
private function isExists()
{
global $db_core;
$selectStatement = $db_core->select(array('id', 'current_group'))
->from('users')
->where('device_id', '=', $this->_device_id);
$stmt = $selectStatement->execute();
if ($stmt->rowCount() > 0)
{
$u = $stmt->fetch();
$this->_id = $u['id'];
$this->_current_group = $u['current_group'];
return true;
}
return false;
}
및 곧. DEVICE_ID 필드가 다음 표에 고유 그것을 위해 고유 인덱스를 추가하도록되어있는 경우
당신의 도움이
잠깐 : PDO 연결 옵션'PDO :: ATTR_ERRMODE => PDO :: ERRMODE_EXCEPTION '은'PDOException'이 던져 지도록 설정되어야합니다. – DanielO
좋은 지적, 감사합니다. –