2010-04-20 31 views
7

Tôi đã thử nhiều cách để lấy ID được chèn cuối cùng với mã bên dưới (đoạn từ lớp lớn hơn) và bây giờ tôi đã từ bỏ.PDO lastInsertId issues, php

Có ai biết làm thế nào để PDO lastInsertId hoạt động không?

Xin cảm ơn trước.

$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

thể bạn cũng đề cập đến nó như thế nào không làm việc? Bằng cách chỉ nói, nó không hoạt động khiến người khác cho rằng vấn đề có thể là gì. Với nhiều thông tin hơn, có nhiều câu trả lời hơn. –

Trả lời

12

Trong đoạn mã của bạn, tôi thấy một số mâu thuẫn nhỏ có thể ảnh hưởng đến sự cố. Đối với một ví dụ, trong đoạn code để chuẩn bị câu lệnh SQL của bạn, bạn sử dụng,

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

Thông báo từ khóa $this. Sau đó, để lấy ID, bạn gọi,

$dbh->lastInsertId(); 

Bạn đã cố gắng sử dụng,

$this->dbh->lastInsertId();