2010-04-20 229 views
7

我已經嘗試了很多方法來獲取最後插入的ID與下面的代碼(從更大的類snipplet),現在我已經放棄了。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

難道你還別說怎麼不工作?只是說,這不起作用導致其他人認爲問題可能是什麼。隨着更多的信息來更多的答案。 – 2010-04-20 14:25:46

回答

12

在你的代碼片段中,我看到了一些可能對問題產生影響的細微不一致。舉一個例子,在編寫代碼你用你的SQL語句,

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

通知的$this關鍵字。然後檢索ID,你打電話,

$dbh->lastInsertId(); 

您是否嘗試過使用,

$this->dbh->lastInsertId();