protected function addToken() { do { $token = $this->generateToken(); $sql = $this->pdo->prepare('INSERT INTO `upload_token` (`token`) VALUES ( :token )'); $sql->execute(array(':token' => $token)); } while (!$this->pdo->lastInsertId()); $token = new UploadToken($this->pdo->lastInsertId(), $token); $this->tokens[$token->getToken()] = array('id' => $token->getId()); return $token; }