2010-04-20 19 views
7

Ich habe viele Möglichkeiten versucht, um die letzte eingefügte ID mit dem Code unten (snipplet aus größeren Klasse) und jetzt habe ich aufgegeben.PDO lastInsertId Probleme, PHP

Kann jemand PDO lastInsertId funktionieren?

Vielen Dank im Voraus.

$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

Könnten Sie auch erwähnen, wie es nicht funktioniert? Wenn man nur sagt, dass es nicht funktioniert, führt das andere dazu, das Problem anzunehmen. Mit mehr Informationen kommen mehr Antworten. –

Antwort

12

In Ihrem Code-Snippet sah ich einige kleinere Inkonsistenzen, die sich auf das Problem auswirken können. Ein Beispiel in dem Code in Ihre SQL-Anweisung Sie

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

Beachten Sie die $this Schlüsselwort verwenden, vorzubereiten. Dann die ID abzurufen, rufen Sie,

$dbh->lastInsertId(); 

Haben Sie versucht, mit,

$this->dbh->lastInsertId();