2010-04-20 25 views
7

He intentado muchas formas de obtener la última ID insertada con el siguiente código (snipplet de una clase más grande) y ahora me he dado por vencido.PDO lastInsertId issues, php

¿Alguien sabe cómo obtener PDO lastInsertId para que funcione?

Gracias de antemano.

$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

Podría también hablar de lo que no está funcionando? Simplemente diciendo que no funciona, lleva a otras personas a asumir cuál es el problema. Con más información, vienen más respuestas. –

Respuesta

12

En su fragmento de código, vi algunas inconsistencias menores que pueden tener un efecto sobre el problema. Por ejemplo, en el código para preparar la instrucción SQL que utiliza,

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

Aviso la palabra clave $this. A continuación, para recuperar el ID, llame,

$dbh->lastInsertId(); 

¿Ha intentado utilizar,

$this->dbh->lastInsertId();