2010-04-20 4 views
7

아래 코드 (큰 클래스의 스 니펫)를 사용하여 마지막 삽입 ID를 얻는 방법을 여러 번 시도했지만 이제는 포기했습니다.PDO lastInsertId 문제, PHP

누구나 PDO lastInsertId를 작동시키는 방법을 알고 있습니까?

미리 감사드립니다.

$sql = "INSERT INTO auth (surname, forename, email, mobile, mobilepin, actlink, regdate) VALUES (:surname, :forename, :email, :mobile, :mobpin, :actlink, NOW())"; 
$stmt = $this->dbh->prepare($sql); 
if(!$stmt) { 
return "st"; 
} 

$stmt->bindParam(':surname', $this->surname); 
$stmt->bindParam(':forename', $this->forename); 
$stmt->bindParam(':email', $this->email); 
$stmt->bindParam(':mobile', $this->mobile); 
$stmt->bindParam(':mobpin', $this->mobilePin); 
$stmt->bindParam(':actlink', $this->actlink); 

$result = $stmt->execute(); 
//return var_dump($result); 
$arr = array(); 
$arr = $stmt->errorInfo(); 
$_SESSION['record'] = 'OK' . $dbh->lastInsertId(); 
$arr .= $_SESSION['record']; 
return $arr; 
+0

당신도 말할 수,

$dbh->lastInsertId(); 

이 사용 해봤 전화? 단지 말하면, 다른 사람들이 그 문제가 무엇인지 추측하도록 이끌지 않습니다. 더 많은 정보를 얻으면 더 많은 답변을 얻을 수 있습니다. –

답변

12

코드 스니 펫에서 문제에 영향을 미칠 수있는 사소한 불일치가있었습니다. 예를 들어, 코드를 사용하여 SQL 문,

$stmt = $this->dbh->prepare($sql); 

을 주목 $this 키워드를 제조한다. 그런 다음 ID를 검색하기 위해, 당신은 작동하지 않는 방법

$this->dbh->lastInsertId();